Ошибка входа для пользователя 'IIS APPPOOL \ ASP.NET v4.0' - PullRequest
400 голосов
/ 08 октября 2011

У меня есть веб-проект (C # Asp.Net, EF 4, MS SQL 2008 и IIS 7), и мне нужно перенести его на IIS 7 локально (в настоящее время работает нормально с CASSINI).

Локально в IIS у меня есть Default Web Site с моим развертыванием. И мое развертывание, и Default Web Site находятся в пуле ASP.NET v4.0 (см. Изображение для настроек), целевую платформу пула Framework 4 в качестве моего веб-проекта. Pool Settings При посещении сайта браузер не показывает страницу и позволяет браузеру загружать страницу.

У меня есть другие проекты, работающие на IIS локально, и они работают без проблем (но они не используют Entity Framework).

При использовании журнала событий я вижу ошибки, как показано ниже:

Exception information: 
    Exception type: EntityException 
    Exception message: The underlying provider failed on Open.
   at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)


    Login failed for user 'IIS APPPOOL\ASP.NET v4.0'.
       at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
       at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
       at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
       at System.Data.SqlClient.SqlConnection.Open()
       at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)

Смежный вопрос

UPDATE: Вы можете прочитать в ресурсах по этому вопросу, что разрешения должны быть предоставлены на MS SQL 2008 вручную, как объясняется в его ответе. При использовании IIS 7.5 и MS SQL 2008 R2 установка разрешения вручную не требуется.

Ответы [ 32 ]

0 голосов
/ 26 ноября 2015

Добавить "Все" под защитой. Если вы добавили Сервер и пользователи вошли в базу данных, то вам этого не хватает. Надеюсь, это поможет.

0 голосов
/ 05 апреля 2019

Важно включить 'sysadmin' в роли сервера

0 голосов
/ 16 сентября 2018

Вы можете столкнуться с этой ошибкой в ​​конкретной базе данных, которая создается после обновления SSMS. Откройте SSMS и выберите базы данных, откройте нужную базу данных, затем нажмите Безопасность -> Пользователи ->, щелкните правой кнопкой мыши Пользователи и снова щелкните «Новый пользователь» и добавьте 'NT. AUTHORITY \ Authenticated Users ' и сохраните свою работу и перейдите к своей форме в Интернете / на рабочем столе, что бы вы ни делали. Наслаждайтесь ....

0 голосов
/ 18 июня 2018

В веб-форме Asp.net,

эта ошибка исправлена ​​при установке asp.net из:

Диспетчер сервера> Управление> Добавить роль и компонент> Роли сервера> Веб-сервер (IIS)>Веб-сервер> Разработка приложений> ASP.NET 3.5 / 4.6 установлен.

моя проблема исправлена.

0 голосов
/ 16 марта 2018

Я использовал SQL Server Profiler (доступно в SSMS => меню Сервис) и увидел там (когда IIS пытался подключиться к базе данных), что мой пользователь IIS по какой-то причине был NT AUTHORITY \ IUSR, независимо от всех шагов, рекомендуемых в ответах в этом вопросе. Поэтому я добавил этого пользователя в SQL Server, и он работал ...

0 голосов
/ 01 ноября 2017

Я сделал именно так, как сказал @JeffOgata, но получил ошибку:

Windows NT user or group 'IIS APPPOOL\ASP.NET v4.0' not found. Check the name again. (Microsoft SQL Server, Error: 15401)

Я снова посмотрел на свое сообщение об ошибке и там было написано Login failed for user 'IIS APPPOOL\DefaultAppPool'.

После добавления пользователя с именем IIS APPPOOL\DefaultAppPool все заработало.

0 голосов
/ 25 июня 2013

Вы сделали то, что рекомендовано @Teddy, и вы STILL получили ту же ошибку?

Убедитесь, что вы меняете настройки для пула приложений, который соответствует вашему виртуальному каталогу, ине родительский сервер.Каждый виртуальный каталог имеет свой собственный AppPool и не наследуется.

0 голосов
/ 10 августа 2017

Я столкнулся с подобной проблемой при размещении приложения в IIS

Решение

Я меняю идентификатор пула и его работу меня

ApplicationPoolIdentity -> NetworkService
0 голосов
/ 16 февраля 2014

В DefaultAppPool установите NetworkService в свойстве Identity, а в Sql Server добавьте User Network Service и предоставьте ему соответствующие разрешения для вашей базы данных, это очень хорошо работает для меня, я протестировал локально, но я думаю, что это лучшая конфигурация дляподключение с любого другого компьютера в сети.когда вы устанавливаете LocalSystem в Identity в IIS, это работает хорошо, и нет необходимости создавать какого-либо другого пользователя в Sql Server, но я думаю, что это не будет работать в сетевой среде.

0 голосов
/ 08 июля 2014

Я столкнулся с той же проблемой тестирования ASP.NET Web API

Разработка Web.Host в Visual Studio 2013 Express База данных, созданная в SQL Server 2012 Express Выполнен тест с использованием встроенного IIS Express (работает) Модифицировано для использования IIS Local (со страницы свойств - веб-опция) Пробежал тест с Фиддлером Получена ошибка - невозможно открыть базу данных для провайдера .... ссылаясь на «APPPOOL \ DefaultAppPool»

Решение, которое сработало.

В IIS

Нажмите на пул приложений 'DefaultAppPool' Set Identify = 'ApplicationPoolIdentity' Установите .NET Framework = v4.0 (хотя мое приложение было 4.5)

В SQL Server Management Studio

Щелкните правой кнопкой мыши на папке «Безопасность» (под механизмом SQL Server, поэтому применяется ко всем таблицам). Щелкните правой кнопкой мыши на User и добавьте «IIS APPPOOL \ DefaultAppPool» В столбце «Предоставить» в разделе «Предметы отчетности» отметьте параметры, которые вы хотите предоставить. Что касается вышесказанного, если вы являетесь администратором базы данных, вы, вероятно, знаете и хотите контролировать что это за варианты. Если вы похожи на меня, разработчик просто хотел проверить ваш сервис веб-API, который также получает доступ к SQL Server через EF 6 в стиле MVC, тогда просто отметьте все. :) Да, я знаю, но это сработало.

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