web-dev-qa-db-ja.com

「IIS AppPool \ ASP.NET v4.0」のログインに失敗しました-SQL Server Web

SQL Server 2008 ExpressからSQL Server WebにWebサイトを移行しようとしていますが、Webサイトがデータベースにアクセスできません。実際、ExpressはこれまでVisual Studioの組み込みWebサーバーからWebサイトを実行することによってのみ使用されていたため、本格的なIIS 7.で十分に機能する構成についてはわかりません。レート、Linq to Entitiesを使用するページにアクセスしようとすると(データベースへの接続にWebサイトが必要です)、「「IIS AppPool\ASP.NET v4.0」のログインに失敗しました」というエラーが表示されるので、 SQL Server Management Studioでユーザーのログインを追加しようとしましたが、「Windows NTまたはユーザーグループ '*****\Asp.Net v4.0'が見つかりません」というメッセージが表示されるだけです。 Management Studioにユーザーの名前を確認するように依頼した後、それは正常に実行されます。誰かが私が間違っていることを教えてもらえますか?また、代替の提案にも対応しています...すべてが同じサーバーで実行されていますが、したがって、リモート接続はありません。このため、可能な場合は、Windows認証を使用したいと思います。

6
user55974

IIS 7は、IISアプリケーションプールIDを使用してSQLデータベースにアクセスしようとしています。

したがって、最初にIIS 7 apppool access to SQL serverを付与する必要があります。

これを行うには、SQL Server Management Studio-> Server Instance-> Security-> Logins-> New Loginに移動します

ログイン名は「IIS APPPOOL\ASP.NET v4.0」になります。これは、IIS7でアプリケーションプールを作成するたびに、アプリケーションプールと同じ名前を使用するIDが作成されるためです。あなたの場合、あなたはasp.net 4に付属しているデフォルトのアプリプールを使用しています。

次に、データベースで、[セキュリティ]-> [ログイン]-> [新しいログイン]に移動し、エイリアス名を付けます。次に、前の手順で追加したユーザーオブジェクト(IIS APPPOOL\ASP.NET v4.0)を選択し、db_owner(または必要に応じて)スキーマ/ロール権限。

7
kimphamg

[〜#〜] edit [〜#〜]:これを行わないでください-最初にこの回答を書いたとき、私は考えていませんでした。

私の元の答えが良い考えではない理由の詳細については、以下のコメントのリンクを確認してください。


別の解決策は、IIS=に移動し、アプリケーションプール自体を編集して「LocalSystem」というIDを使用することです。これは、アプリプールを右クリックして、[詳細設定]をクリックし、[ID]をクリックします。 .. 'ボタン(「プロセスモデル」の真下)->ビルトインアカウントドロップダウンリストで[LocalSystem]を選択します。

これにより、データベースに新しいユーザーを設定する必要がなくなります。

1
emragins