IIS 7 и строка подключения Entity Framework - PullRequest
0 голосов
/ 08 октября 2011

Я использую Entity Framework в проекте ASP.Net. Он отлично работает на сервере разработки. Но в IIS 7 возникают исключения. Я использую SQL Server 2008 Enterprise в качестве серверной части.

Entity Framework Connection String in the web.config follows
 <connectionStrings>
<add name="NorthwindEntities" connectionString="metadata=res://*/App_Code.Model.csdl|res://*/App_Code.Model.ssdl|res://*/App_Code.Model.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=GIRI-PC\GIRISQL2008;Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

Ошибка в iis 7:

      System.Data.EntityException: The underlying provider failed on Open. ---> System.Data.SqlClient.SqlException: Login failed for user 'IIS APPPOOL\DefaultAppPool'.
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
   at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject)
   at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout)
   at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
   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)
   --- End of inner exception stack trace ---
   at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
   at System.Data.EntityClient.EntityConnection.Open()
   at _Default.btn_submit_Click(Object sender, EventArgs e)

У вас есть идеи по поводу этой проблемы?

Ответы [ 2 ]

1 голос
/ 08 октября 2011

Более четко: клиент SQL Server может установить связь с указанным экземпляром SQL Server («GIRI-PC \ GIRISQL2008»).

Это может быть:

  • Отсутствиеобщий протокол
  • Необходимо указать другой порт TCP для IP
  • Экземпляр сервера не прослушивает сетевой порт, который использует ваше соединение
  • Не удалось разрешить имя хоста (или неправильно)
  • Имя экземпляра неверно
0 голосов
/ 08 октября 2011

Конкретная проблема - Login failed for user 'IIS APPPOOL\DefaultAppPool.Похоже, вам нужно правильно настроить либо;ваш пул приложений для использования учетной записи, имеющей доступ к базе данных, создания нового пула приложений с учетной записью, имеющей доступ к базе данных, или разрешения удостоверению DefaultAppPool для доступа к базе данных.

Сервер базы данных веб-сайтпытается получить доступ GIRI-PC\GIRISQL2008.Если это не правильно, вам нужно;обновите ваш web.config, чтобы он указывал на правильный сервер Sql (и экземпляр), или создайте web.config преобразований (предпочтительно), чтобы разделить параметры разработки и параметры развертывания (dev, test, stage, prod).

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