Web プロジェクト (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 で、Web プロジェクトとして使用されています。サイトにアクセスすると、ブラウザーにページが表示されず、代わりにブラウザーがページをダウンロードします。
ローカルで 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)
更新: この質問のリソースには、arift が回答で説明しているように、MS SQL 2008 で権限を手動で付与する必要があることが書かれています。IIS 7.5 と MS SQL 2008 R2 を使用する場合、権限を手動で設定する必要はありません。
ベストアンサー1
SQL Server への接続を開こうとして失敗したようです。
SQL Server にログインを追加しIIS APPPOOL\ASP.NET v4.0
、データベースへの権限を付与する必要があります。
SSMS で、サーバーの下にある [セキュリティ] を展開し、[ログイン] を右クリックして [新しいログイン...] を選択します。
[新しいログイン] ダイアログで、ログイン名としてアプリ プールを入力し、[OK] をクリックします。
次に、アプリケーション プールのログインを右クリックし、[プロパティ] を選択して [ユーザー マッピング] を選択します。適切なデータベースと適切なロールを確認します。 と を選択するだけでよいと思いますがdb_datareader
、db_datawriter
EF 経由で実行する場合には、ストアド プロシージャを実行するためのアクセス許可を付与する必要があると思います。ロールの詳細を確認できます。ここ。