IIS 7 не подключается к Sql2008 - PullRequest
0 голосов
/ 07 июня 2011

У меня действительно странная проблема с подключением IIS7 к Sql2008.

Сначала, используя веб-сервер по умолчанию в VS2010, в HTTPModule Я загружаю строку подключения из web.config и получаю доступ к базе данных. Работает хорошо. (Строка подключения использует Integrated Security = SSPI)

Но так как на сайте есть #include, мне нужно отладить его в IIS, поэтому я переключился с веб-сервера по умолчанию на IIS. Все остальное тоже самое. Однако, когда я пытаюсь открыть тот же SqlConnection в HTTPModule, я обнаруживаю, что предоставленные учетные данные - не пользователи, а имя компьютера.

Среда - это машина Virtul; Windows 7 64 бит; IIS7; VS2010; SQL2008

Может кто-нибудь подсказать мне, где и как это устанавливается? Thx

Ответы [ 2 ]

0 голосов
/ 08 июня 2011

Для тех, кто сталкивается с той же проблемой, что и я.

Во-первых, место, где я пытался запустить хранимую процедуру, было в HTTPModule.Также я использовал мою локальную копию IIS для отладки.Обратите внимание, что в веб-сервере по умолчанию, который поставляется с VS2010, он работал нормально, но в IIS он сломался.

Вы, очевидно, не можете получить доступ к удаленному Sql2008 в методе BeginRequest HTTPModule.Это должно быть в методе PostRequestHandlerExecute.

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

0 голосов
/ 07 июня 2011

Когда вы запускаете приложение в Visual Studio, приложение запускается как «вы».Если ваших учетных данных достаточно для подключения к базе данных, то с помощью Integrated Security вы сможете войти в систему.

При переходе на IIS IIS запускает процесс под другим именем в зависимости от вашегоконфигурация (но, скорее всего, не "вы").У вас есть несколько вариантов:

1) Дать пользователю IIS по умолчанию доступ с правами доступа к базе данных (не рекомендуется)

2) Сконфигурировать IIS для запуска приложения как «вы», иликак выделенный пользователь, настроенный специально для запуска вашего процесса.

http://technet.microsoft.com/en-us/library/cc771170(WS.10).aspx

3) Не используйте встроенную защиту, используйте защиту SQL.

Вот статья, котораяописывает, как вы можете выяснить, под каким пользователем IIS работает.

http://blogs.iis.net/davcox/archive/2009/08/12/what-is-my-iis-code-running-as.aspx

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