.Net Core Application подключается к серверу SQL с неверными учетными данными - PullRequest
0 голосов
/ 12 июня 2019

Я создаю приложение .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.

...