Ошибка подключения к SQL Server на Windows 7 / Windows 2008 R2 через ASP.NET

понедельник, 12 октября 2009, Роман Калита

Не знаю сталкивались ли Вы с подобной траблой. Но я на протяжении нескольки дней не мог понять причину почему я не могу подсоеденится с SQL Server на своем Windows 7 из ASP.NET приложений.

Так вот решение проблемы оказалось достаточно простым. Так как я промучился с этим несколько дней я решил поделится этой информацией с Вами и возможно она станет кому-то полезной.

При подключении из асп.нет приложения я постоянно получал ошибку следующего содержания:

Failed to generate a user instance of SQL Server due to failure in retrieving the user's local application data path. Please make sure the user has a local user profile on the computer. The connection will be closed.

Проблема оказалась в том что начиная с IIS 7.5, Application Pool работает с уникальным identity на основе имени пула, в отличие от ранее используемого NetworkService –  умолчательного identity для IIS6 и IIS7.  Основной причиной такого изменения является улучшение безопасности IIS и пулов приложений. Но у нового identity нет юзер профайла что приводит к ошибке указанной выше.

Чтобы "пофиксить" такое поведение можно:

1. Вернутся обратно к NetworkService

2. Переключить identity на аккаунт пользователя с локальным профилем (локальный или доменный пользователь).

Чтобы сделать это нужно перейти в IIS Manager (inetmgr), в нем перейти к узлу Application Pools, выбрать пул вашего приложения и нажать на Advanced Settings на правой панели. Перейдите Identity и выберете NetworkService в качестве "built-in account" или "Custom account" и введите пользователя/пароль.

Также вот ссылка на статью где майкрософт рассказывает о введение изменений связанных с пулами и identities


Ищите нас в интернетах!

Комментарии

Свежие вакансии