Проблемы при развертывании моего webapi в iis - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть вебапи в .Net Core 2.1.Я использовал Microsoft SQL Management Studio, поставляемую с Visual Studio 2017, для создания базы данных, которую webapi использует для обработки своих данных.Когда я запускаю его (webapi) в VisualStudio, он работает нормально, я могу звонить через POSTMAN и получаю ответы довольно хорошо, но проблема возникает при развертывании webapi на локальном IIS.Я получаю эту страницу ошибки:

Произошла ошибка при запуске приложения.Win32Exception: неизвестная ошибка (0x89c50118) Неизвестное расположение SqlException: ошибка, связанная с сетью или экземпляром, возникла при установлении соединения с SQL Server.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: сетевые интерфейсы SQL, ошибка: 50 - произошла ошибка времени выполнения локальной базы данных. Невозможно создать автоматический экземпляр. Сведения об ошибке см. в журнале событий приложений Windows.) System.Data.SqlClient.SqlInternalConnectionTds..ctor (удостоверение DbConnectionPoolIdentity, SqlConnectionString connectionOptions, SqlCredential учетных данных, объект providerInfo, строка новый_пароль, SecureString newSecurePassword, BOOL redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, BOOL applyTransientFaultHandling) Win32Exception: неизвестная ошибка (0x89c50118)

у меня такая же ConnectionString в appsetting.json, потому что база данных одна и та же, когда я запускаю webapi в visual studio, поэтому я не знаю, что я делаю неправильно.

Нужно ли мне настраивать IIS или DataBase?Любая помощь, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 12 марта 2019

У меня была такая же проблема с MS LocalDB.Это правда, что эта ошибка происходит из-за разрешения сервера SQL.Однако в моем случае я попытался предоставить разрешение и даже добавил своего пользователя в «Редактировать сайт-> Подключиться как» IIS Site Manager, но он не работал с LocalDB.

Мое исправление: так как нам нужноразместить наш веб-сайт на сервере SQL, поэтому я загрузил базу данных на сервер SQL и изменил строку подключения в appsettings.json, как показано ниже:

"IdentityDbContextConnection": "Server = TestServer001 \ sqlexpress; Database =WEBPROJECTDB; Интегрированная безопасность = SSPI; "

и Web.Config

0 голосов
/ 25 сентября 2018

Когда вы запускаете webapi в Visual Studio, Visual Studio запускает IISExpress с вашей локальной учетной записью, и эта учетная запись будет подключаться к базе данных (смотрите строку подключения: Источник данных =. \ SQLEXPRESS; Исходный каталог = база данных; Интегрированная безопасность = True).Эта учетная запись имеет разрешение на доступ к базе данных по умолчанию.

И теперь, если вы хотите запустить свой веб-интерфейс на IIS, есть 2 способа:

  1. Добавить учетную запись, которая может получить доступвашей базы данных и измените строку подключения

  2. Добавьте учетную запись удостоверения пула приложений IIS из SQL Management Studio, затем измените разрешение.

...