Открытие SQL-соединения из IIS7? - PullRequest
0 голосов
/ 18 февраля 2010

Я создал веб-сайт ASP.NET с Visual Studio 2008 sp1, и в коде я использую соединение SQL для доступа к базе данных в моем SQL Server 2008. Все отлично, но затем я хотел развернуть сайт в IIS7 (Windows 7) который был ад, чтобы узнать, как это сделать- (Я добавил виртуальный каталог и преобразовал его в приложение, и только тогда он не показывал мне ошибку, которую я получал до того, как скопировал его в inetpub \ wwwroot и преобразовал в приложение). После этого я попытался запустить его из IIS7, но он просто показывает мне ошибку, которая появляется в команде sqlconnection.open (), которая прекрасно работает, когда я запускаю сайт из Visual Studio. Как мне решить это?

Я использую следующую строку подключения: «Источник данных EDI-PC \ SQLEXPRESS; Начальный каталог = SyncMaster; Интегрированная безопасность = Истина»

И мой IIS7 находится на том же компьютере, что и SQL Server, так что же мне нужно сделать, чтобы он работал?

Ответы [ 2 ]

2 голосов
/ 18 февраля 2010

Ваша строка подключения, вероятно, выглядит следующим образом ...

<add name="ConnectionString" 
     connectionString="Data Source=servername;
                      Initial Catalog=dbname;
                      Integrated Security=True"
     providerName="System.Data.SqlClient" />

Это означает, что для подключения используется учетная запись Windows, под которой работает IIS NETWORK SERVICE. При запуске из Visual Studio он использует вашу учетную запись Windows, которая имеет доступ к серверу SQL.

Создайте пользователя SQL для использования в качестве учетной записи службы и укажите эту информацию в строке подключения. Таким образом он попытается подключиться, используя ту же учетную запись, которую вы создали в Visual Studio и IIS.

т.

<add name="ConnectionString" 
     connectionString="Data Source=servername;
                       Initial Catalog=dbname;
                       Persist Security Info=True;
                       User ID=sqluser;
                       Password=sqruserpassword"
     providerName="System.Data.SqlClient" />
0 голосов
/ 18 февраля 2010

При работе в IIS7 (или любом другом IIS в этом отношении) подключение к серверу sql выполняется как пользователь, который запускает пул приложений в iis.В IIS7 обычно это NETWORK SERVICE.Поэтому, если вы используете встроенную защиту, вам нужно предоставить этой учетной записи доступ к базе данных.Если ваш экземпляр SQL-сервера работает на другом компьютере, скажем, SQLSERVER01, а ваше веб-приложение работает на вашем компьютере, YOURMACHINE, то учетная запись NETWORK SERVICE на вашем компьютере будет называться YOURMACHINE $, как видно из SQLSERVER01.

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