Подключитесь к серверу db с сервера приложений: (0x80131904): Ошибка входа для пользователя NT AUTHORITY \ ANONYMOUS LOGON - PullRequest
1 голос
/ 04 августа 2020

У меня два сервера: AppServer с IP 192.168.1.2 и DBServer с IP 192.168.1.3

На DBServer у меня есть база данных EMS MVC в экземпляре DBSERVER\SQLEXPRESS. База данных работает.

На AppServer в web.config У меня:

<add name="DefaultConnection" 
     connectionString="Data Source=;Initial Catalog=EMSMVC;Integrated Security=True;Server=192.168.1.3;user id=DBSERVER\admin;password=admin" 
     providerName="System.Data.SqlClient" />
<add name="EMSMVCEntities" 
     connectionString="metadata=res://*/Models.EMSModel.csdl|res://*/Models.EMSModel.ssdl|res://*/Models.EMSModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DBSERVER\SQLEXPRESS;initial catalog=EMSMVC;integrated security=True;Server=192.168.1.3;user id=admin;password=DBSERVER\admin;multipleactiveresultsets=True;application name=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" />

Когда я просматриваю приложение на AppServer, я получаю следующую ошибку:

[SqlException (0x80131904): Ошибка входа для пользователя NT AUTHORITY \ ANONYMOUS LOGON.]

Однако я не пытаюсь подключиться с использованием анонимного входа.

1 Ответ

0 голосов
/ 04 августа 2020

В вашей строке подключения есть несколько проблем:

<add name="DefaultConnection" 
     connectionString="Data Source=;Initial Catalog=EMSMVC;Integrated Security=True;Server=192.168.1.3;user id=DBSERVER\admin;password=admin" 
     providerName="System.Data.SqlClient" />
  1. У вас есть и a Data Source (без значения), и Server - вы должны использовать одно или другое - но не оба. Оба в основном означают одно и то же - ни один из них не указывает имя экземпляра \SQLEXPRESS ....

  2. Вы указываете User Id (и пароль) в соединении строка - но также Integrated Security=True, что означает использование встроенной авторизации Windows - снова: если вы хотите использовать User Id; тогда вы НЕ ДОЛЖНЫ одновременно указывать Integrated Security - этот параметр будет иметь приоритет над указанным User Id.

Таким образом, ваша строка подключения должна действительно быть:

<add name="DefaultConnection" 
     connectionString="Data Source=DBSERVER\SQLEXPRESS;Initial Catalog=EMSMVC;User id=DBSERVER\admin;password=admin" 
     providerName="System.Data.SqlClient" />

или использовать IP-адрес вместо имени машины:

<add name="DefaultConnection" 
     connectionString="Data Source=192.168.1.3\SQLEXPRESS;Initial Catalog=EMSMVC;User id=DBSERVER\admin;password=admin" 
     providerName="System.Data.SqlClient" />

или, если вы предпочитаете Server= вместо настройки Data Source=:

<add name="DefaultConnection" 
     connectionString="Server=192.168.1.3\SQLEXPRESS;Initial Catalog=EMSMVC;User id=DBSERVER\admin;password=admin" 
     providerName="System.Data.SqlClient" />
...