IIS7.0を使用してRackspaceCloudServerでホストしているASP.NETMVC2Webサイトを構築しました。
サーバー上のIIS7.0を使用してローカルホストでWebサイトをテストしようとすると、エラーページが表示されます。これはSQLログからのものです(私はSQL Web Editionを使用しています):
Error: 18456, Severity: 14, State: 11
Login failed for user 'IIS APPPOOL\DefaultAppPool'. Reason: Token-based server access validation failed with an infrastructure error. Check for previous errors. [CLIENT: <local machine>]
私のウェブサイトは自宅のPCで正常に動作するため、問題はデータベースへの接続に関係しています。
エラーメッセージコードを調べたところ、有効なDBログインがあるが、サーバーアクセスに失敗したことがわかりました。私はさまざまなフォーラム(stackoverflow / serverfaultを含む)でこれを読んでスタックしましたが、これが私が試したものですが、どれも問題を解決していません:
SQLServer認証を使用して新しいログインを設定します。SQLで新しいログインを作成し、DBに正しいアクセス権を付与しました。Web構成で次の接続文字列を使用しました。
データソース=myServer;初期カタログ=myDB;ユーザーID=myUsername; Password = myPassword;
として新しいログインを作成します
IIS APPPOOL\DefaultAppPool
。正しいアクセス権を使用してSQLで新しいログインを作成し、Windows認証を使用しました。次のような接続文字列:Server = myServer; Database = myDataBase; Trusted_Connection = True;
既存のネットワークログインを使用します
NT AUTHORITY\NETWORK SERVICE
。このユーザーを正しいアクセス権でデータベースにマップしました。次のような接続文字列:Server = myServer; Database = myDataBase; Trusted_Connection = True;
オンラインで資料を読んだとき、これらが主な選択肢のようでした。最後に、役立つかもしれない他のいくつかのものとしてここに:
- 管理者として実行するようにSQLを設定しても、問題は解決しませんでした
- オフにする
UAC
ことは役に立ちませんでした - 私のアプリケーションプールはApplicationPoolIdentityを使用しています(セキュリティ上の理由から最適です)
つまり、DBからオブジェクトを取得できないため、Webサイトが起動せず、エラーが発生します。問題は、サーバーへのアクセス権が正しく設定されていないことです。必要なSQLログイン/接続文字列/ドメインアクセス権の構成がわかりません。
これは私を3週間悩ませてきました-私を助けてくれるように5分を割いていただけますか?