Не удалось разрешить DbContext после развертывания в Asp.Net Core 2.X - PullRequest
0 голосов
/ 27 июня 2018

У меня есть webapi в asp.net core 2.1, и он работает правильно, если я нажимаю F5 из Visual Studio, я могу поразить свои контроллеры, но когда я развертываю приложение в IIS, оно говорит, что оно может разрешить DbContext для метода Configure.

Мой Configure выглядит так

 public void Configure(IApplicationBuilder app, IHostingEnvironment env, IConfiguration configuration, DocumentDbContext documentContext)
        { …}

на моем ConfigureServices Я вставляю dbcontext таким образом

container.AddDbContext<DocumentDbContext>(options => options.UseSqlServer(connectionString), ServiceLifetime.Scope);

и, как я уже сказал, работает. Чтобы развернуть приложение в IIS, я добавил следующую информацию о классе Program

 public class Program
    {
        public static void Main(string[] args)
        {
            var host = BuildWebHost(args);

            host.Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();
    }

ApplicationPool работает под No Managed Code мне нужно проверить что-то еще?

1 Ответ

0 голосов
/ 27 июня 2018

Обнаружена проблема, связанная с тем, что в строке подключения использовалась встроенная система безопасности, которая не работала при развертывании для запуска под IIS, поскольку веб-приложение работало под идентификатором пула приложений. Поскольку удостоверение пула приложений не имеет доступа к базе данных, соединение не установлено.

Рекомендуемое исправление - создание нового имени входа на сервер sql, назначение этого пользователя базе данных приложения, обновление строки подключения для использования идентификатора пользователя и пароля вместо встроенной защиты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...