ドメイン内の別のマシン上のSQL Serverデータベースへの接続を開く小さなASP.NETテストスクリプトがあります。すべての場合に機能しているわけではありません。
セットアップ:
リモートSQL Server 2008 R2インスタンスに接続しようとしているW2K8R2の下のIIS 7.5。すべてのマシンは同じドメインにあります。
WebサイトのApplicationPoolIdentityを使用すると、次のようにSQL Serverへの接続に失敗します。
ユーザー 'NT AUTHORITY \ ANONYMOUS LOGON'のログインに失敗しました。説明:現在のWeb要求の実行中に未処理の例外が発生しました。エラーの詳細とコードのどこで発生したかについては、スタックトレースを確認してください。
例外の詳細:System.Data.SqlClient.SqlException:ユーザー 'NT AUTHORITY \ ANONYMOUS LOGON'のログインに失敗しました。
ただし、プロセスモデルIDをNETWORK SERVICEまたはドメインアカウントに切り替えると、データベース接続は成功します。
SQL Serverで\ $アクセスを許可しました。
私はWebサイトで認証を行いません。データベースへの接続を開いて機能することを確認するための単純なスクリプトです。
匿名認証を有効にし、アプリケーションプールIDを使用するように設定しています。
この作業を行うにはどうすればよいですか?ApplicationPoolIdentityがANONYMOUS LOGONを使用しようとするのはなぜですか?さらに良いことに、匿名ログオンの使用を停止するにはどうすればよいですか?