ASP.NET Core-приложение не подключается к базе данных после публикации
я создал простой ASP.Net основное приложение с аутентификацией пользователя (таким образом, вся Entity Framework была предварительно загружена в шаблон веб-приложения). Он подключается к моей базе данных с помощью connectionString
который находится в my С "data source = {computerName}{serverName}"
настройка.
экземпляр базы данных и Visual Studio расположены на одном компьютере. Это отлично работает при возврате данных в веб-api в режиме разработки и отладки. Когда я публикую его и пытаюсь перейти на сайт из доменного имени он позволяет мне просматривать веб-страницы, которые не нуждаются в подключении к базе данных, но остальные, которым нужны данные из базы данных, возвращают страницы следующим образом:
ошибка.
При обработке запроса произошла ошибка. Режим Разработки При переключении в среду разработки отобразится более подробная информация об ошибке.среда разработки не должна быть включена в развернутых приложения, как это может привести к конфиденциальной информации от исключения, отображаемые конечным пользователям. Для локальной отладки, среду разработки можно включить, установив Переменная среды ASPNETCORE_ENVIRONMENT для разработки и перезапуск приложения.
я попытался изменить переменные среды для ASPNETCORE_ENVIRONMENT
от развития к продукции к никакому успеху.
я пробовал добавлять appsettings.Production.json
до publishOptions
в своем project.json
файл, даже если нет файл appsettings.Production.json
и это не помогло. dotnet ограничителя публикации
добавление переменной evironment в не работает развертывание
мне нужна помощь в получении опубликованного веб-api для подключения к моей базе данных SQL Server из-за пределов настройки Visual Studio.
последнее, о чем я могу думать, это то, что, возможно, я ошибаюсь в том, как я понимаю строку подключения. Если веб-api использует строку подключения к подключитесь к базе данных со стороны сервера, тогда она должна работать нормально, как и при вызове http://localhost:port#
так как все это на одной машине. Но если строка базы данных должна основываться на вызове на стороне клиента, то она должна быть с доменными именами и IP-адресами.
Кто-нибудь может сказать мне, кто это?
единственное, что еще приходит на ум, что есть что-то, что я не делаю, и нужно сделать, внутри диспетчера IIS. Я вижу строку подключения там также, но не уверен, что это для нашего делает, так как строка подключения находится внутри приложения. Также, возможно, я должен дать приложению какую-то авторизацию для связи с сервером баз данных, даже если они находятся на одной машине???
1 ответов
после долгих исследований, наконец, в гугле "как развернуть веб-api в iis" я смог узнать от хост ASP.NET веб-API в IIS с помощью Visual Studio Publish что мне нужно добавить объект безопасности BUILTIN\IIS_IUSRS. Затем поместите сопоставление с таблицами базы данных и предоставьте db_datareader (и, возможно, db_datawriter) для базы данных IUSER, чтобы разрешить доступ из моего собственного веб-api IIS. Это из вышеупомянутой ссылки с частью, заявляющей
доступ к базе данных в IIS APPPOOL\ASP.NET v4.0 Как мы используем ASP.NET v4.0 пул приложений убедитесь, что IIS APPPOOL\ASP.NET v4.0 добавляется на сервер базы данных - > Безопасность - > логины.