Подключение к SQL Server из IIS (ASP.Net Ядро)

#asp.net-core #iis

#asp.net-ядро #iis

Вопрос:

Я часами пытаюсь использовать несколько комбинаций для подключения моего asp.net основной сайт, размещенный на сервере IIS на удаленном сервере SQL, используя только пользователя SQL и пароль без выхода. Это моя строка подключения в appsettings.json:

  "ConnectionStrings": {
    "Booking": "Server=SQLServerName;Database=Booking;User Id=XXX;Password=XXX;"
  }
  
  • Я попытался установить интегрированную безопасность = false и доверенное соединение = false
  • Я изменил идентификатор свойства в пуле приложений на LocalSystem, хотя _ Я перепробовал все варианты.
  • Я могу подключиться к базе данных со своего компьютера к SQLManager без каких-либо проблем.
  • В моем средстве просмотра событий я вижу следующую ошибку: Microsoft.Data.SqlClient.SQLException (0x80131904): ошибка входа в систему для пользователя ‘DOMAIN NAMEOFTHESERVER $’.
  • SQL Server 2016 на сервере базы данных, Windows server 2016 на веб-сервере.
  • Я использую проверку подлинности Windows для проверки подлинности пользователя, но мне нужно использовать простого пользователя и пароль для подключения к БД.

Есть идеи о том, что я делаю не так?

Спасибо

Комментарии:

1. ПРАВИЛЬНО!!!! Я добавил строку подключения к файлу appsettings.development.json, и теперь она работает. Большое, большое спасибо

Ответ №1:

Исключение SQLException (0x80131904): ошибка входа в систему для пользователя ‘DOMAIN NAMEOFTHESERVER $’.

Это означает, что строка подключения, которую вы показываете, не используется, поскольку это имя пользователя принадлежит NT AUTHORITYNETWORK SERVICE . Таким образом, используется другой файл конфигурации, например appsettings.development.json , который использует Integrated Security=True , используя идентификатор пула приложений.

Измените среду в вашем web.config на рабочую, чтобы appsettings.development.json она не использовалась:

 <system.webServer>
    <aspNetCore ...>
      <environmentVariables>
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Production" />
  

Ответ №2:

Возможно, вам не хватает установленных разрешений в IIS, если вы установили разрешения для sql db для определенного пользователя. Надеюсь вам помочь.

введите описание изображения здесь

Комментарии:

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

2. Это не связано даже с использованием проверки подлинности Windows для SQL Server. Но я вижу, что это не ваша проблема