1. ホーム
  2. c#

[解決済み] [Solved] User 'IIS APPPOOLASP.NET v4.0'のログインに失敗しました。

2022-03-23 11:56:39

質問

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)

関連する質問

UPDATE この質問に関する資料には、arift氏の回答で説明されているように、MS SQL 2008に権限を手動で付与する必要があることが書かれています。 IIS 7.5とMS SQL 2008 R2を使用する場合は、手動で権限を設定する必要はありません。

解決方法は?

SQL Serverへの接続を開こうとして失敗しているようです。

のSQL Serverへのログインを追加する必要があります。 IIS APPPOOL\ASP.NET v4.0 を作成し、データベースへのアクセス権を付与します。

SSMS で、サーバーの下の Security を展開し、Logins を右クリックして "新規ログイン..." を選択します。

New Loginダイアログで、ログイン名としてapp poolを入力し、"OK"をクリックします。

次に、アプリ プールのログインを右クリックし、[プロパティ] を選択して ["ユーザー マッピング] を選択します。 適切なデータベースと、適切なロールを確認します。 を選択すれば良いと思います。 db_datareaderdb_datawriter が、EFで行う場合は、やはりストアドプロシージャの実行権限を付与する必要があると思います。 ロールの詳細を確認することができます ここで .