Невозможно получить доступ к БД после публикации .net API - PullRequest
0 голосов
/ 05 февраля 2019

Я пишу небольшое веб-приложение ASP.NET с контроллером, который может получить доступ к моей локальной базе данных для получения информации.Когда я запускаю приложение из Visual Studio, все работает нормально, но когда я публикую приложение в IIS, я получаю эту ошибку:

"Произошла ошибка.", "CeptionMessage ":" Связанный с сетью или экземплярошибка при установке соединения с SQL Server. Сервер не был найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен на разрешение удаленных подключений. (поставщик: Сетевые интерфейсы SQL, ошибка: 50- Произошла ошибка времени выполнения локальной базы данных. Невозможно создать автоматический экземпляр. "

Я не могу понять, почему приложение работает из Visual Studio, но не удается после публикации. Мои строки подключения (автоматически создаются при создании контроллера с помощьюEntityFramework):

<connectionStrings>
<add name="ToDoContext" connectionString="Data Source=(localdb)\MSSQLLocalDB; Initial Catalog=ToDoContext-20190205170505; Integrated Security=True; MultipleActiveResultSets=True; AttachDbFilename=|DataDirectory|ToDoContext-20190205170505.mdf"
  providerName="System.Data.SqlClient" />

Я заметил, что при запуске формы приложения VS в URL-адресе появляется номер порта, в то время как в IIS его нет (я незнаю, может ли этот факт иметь какое-либо влияние). Любые предложения? Спасибои.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Поскольку вы используете интегрированную защиту, убедитесь, что пул приложений, используемый IIS, настроен для SQL Server, как указано здесь: https://blogs.msdn.microsoft.com/ericparvin/2015/04/14/how-to-add-the-applicationpoolidentity-to-a-sql-server-login/

0 голосов
/ 05 февраля 2019

Эта строка подключения указывает на экземпляр LocalDb.Крайне маловероятно, что это установлено на сервере, поэтому вы получаете ошибку соединения.

Вам необходимо выяснить, какие экземпляры SQL-сервера доступны для вашего приложения IIS.В промежуточной или QA-среде это может быть просто localhost, но в производственной среде это может быть отдельный сервер.

Маловероятно, что Integrated Security будет работать (и, вероятно, не должен работать)).Вам необходимо получить имя пользователя и пароль от администратора и использовать его.

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