Я создаю приложение .Net Core (2.2, начиная с версии 2.1) и использую локально размещенную базу данных, но, продолжая, я хотел перейти к базе данных, размещенной на сервере, на котором она будет расположена в будущем,Проблема в том, что я не могу создать новую базу данных, куда она должна идти, потому что кажется, что она пытается войти в систему с текущей учетной записью пользователя на моей рабочей станции, а не с указанными учетными данными в строке подключения.Это строка подключения в файле appsettings.json:
"ConnectionStrings": {
"DocHandlerContext": "Server=SQLserverName\\SQLEXPRESS;Database=DocHandler;Trusted_Connection=True;MultipleActiveResultSets=true;User ID=xxxx;Password=xxxx"
},
А вот файл startup.js, вызывающий контекст БД:
public class Startup
{
public static string ConnectionString { get; private set; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
ConnectionString = Configuration.GetConnectionString("DocHandlerContext");
}
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddDbContext<DocHandlerContext>(options =>
options.UseSqlServer(ConnectionString));
}
А затем в файле DBcontext, гдеУ меня есть модели, данные о строительных лесах и определенные отношения. Я также называю эту строку подключения следующим образом:
public static string GetDefaultConnectionString()
{
return Startup.ConnectionString;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(GetDefaultConnectionString());
}
Тем не менее, когда я пытаюсь выполнить команду обновления базы данных с новыми настройками, я получаю сообщение об ошибке, ноЯ думаю, что уместная проблема заключается в следующем:
Отказано в разрешении CREATE DATABASE в базе данных «master».
Просмотр журналов сервера SQL показывает, что он пытался войти сучетная запись пользователя, с которой я в настоящее время вошел в систему, так что, похоже, он не использует учетные данные, которые я указал.Я понятия не имею, откуда это исходит.Разве он не находит строку подключения и по умолчанию пытается попробовать проверку подлинности Windows?Я также попытался запустить приложение в режиме отладки, и там я получил ту же ошибку:
fail: Microsoft.EntityFrameworkCore.Database.Connection[20004]
An error occurred using the connection to database 'DocHandler' on server 'SQLSERVERNAME\SQLEXPRESS'.
System.Data.SqlClient.SqlException (0x80131904): Cannot open database "DocHandler" requested by the login. The login failed.
Login failed for user 'DOMAIN\Dennis'.
Я уже целый день пытаюсь решить эту проблему, одной идеей было использовать update-database суказанная строка подключения, но кажется, что она недоступна в ядре EF.