Назад | Перейти на главную страницу

Ошибка входа для «IIS AppPool \ ASP.NET v4.0» - SQL Server Web

Я пытаюсь перенести веб-сайт с SQL Server 2008 Express на SQL Server Web, но у этого веб-сайта возникают проблемы с доступом к базе данных. По правде говоря, Express когда-либо использовался только при запуске веб-сайта со встроенного веб-сервера Visual Studio, поэтому я не уверен, что конфигурация работает так хорошо в полномасштабном IIS 7. Во всяком случае, когда я пытаюсь получить доступ к странице который использует Linq to Entities (требующий подключения веб-сайта к базе данных), я получаю сообщение об ошибке «Ошибка входа для IIS AppPool \ ASP.NET v4.0». Итак, я открыл SQL Server Management Studio и попытался добавить логин для пользователя, но я просто получил сообщение «Windows NT или группа пользователей '***** \ Asp.Net v4.0' не найдены» . Это происходит даже после того, как я прошу Management Studio проверить имя пользователя, что она успешно выполняет. Может кто подскажет, что я делаю не так? Кроме того, я открыт для альтернативных предложений ... Все работает на одном сервере, поэтому удаленных подключений нет. По этой причине я бы хотел использовать проверку подлинности Windows, если это вообще возможно.

IIS 7 пытается использовать удостоверение пула приложений IIS для доступа к вашей базе данных SQL.

Поэтому сначала необходимо предоставить пулу приложений IIS 7 доступ к серверу SQL.

Для этого перейдите в SQL Server Management Studio -> Server Instance -> Security -> Logins -> New Login.

Имя для входа будет «IIS APPPOOL \ ASP.NET v4.0». Это связано с тем, что каждый раз, когда вы создаете пул приложений в IIS7, он создает идентификатор, который использует то же имя, что и ваш пул приложений. В вашем случае вы используете пул приложений по умолчанию, который поставляется с asp.net 4.

Затем в своей базе данных перейдите в Security -> Logins -> New login, дайте ему псевдоним, затем выберите свой пользовательский объект, который вы добавили на предыдущем шаге (IIS APPPOOL \ ASP.NET v4.0), затем дайте ему db_owner (или какими бы ни были ваши потребности) схемы / привилегии ролей.

РЕДАКТИРОВАТЬ: Пожалуйста, не делайте этого - я не думал, когда изначально писал этот ответ.

Чтобы узнать подробнее, почему мой исходный ответ не является хорошей идеей, просмотрите ссылку в комментариях ниже.


Другое решение - войти в IIS и отредактировать сам пул приложений, чтобы использовать идентификатор LocalSystem. Это можно найти, щелкнув правой кнопкой мыши пул приложений -> дополнительные настройки -> нажмите кнопку Identity «...» (прямо под «Модель процесса») -> выберите «LocalSystem» в раскрывающемся списке «Встроенная учетная запись».

При этом вам не нужно создавать нового пользователя в своей базе данных.

Просто следуйте инструкциям на рисунках ниже и убедитесь, что вы выбрали свою базу данных при сопоставлении пользователей.

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

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

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

Нажмите следующие шаги, чтобы просмотреть изображение:

шаг 1

шаг 2

шаг 3