ASP.NET アプリケーションをデプロイした後、問題が発生しました。すべてがデバッグ モードで正常に機能していましたが、デプロイ後に DB に接続しようとするページで次のエラーが発生します。
ユーザー「」のログインに失敗しました。
私のSQLConnection文字列は次のとおりです。
sdb.ConnectionString = "Data Source=< SQLServerAddress >;Initial Catalog=sdb;";
もともと持っていた
Integrated Security=true;
接続文字列に追加しましたが、同様のエラー メッセージが表示されました。
「ユーザー '< ドメイン >\< コンピューター名 >$' のログインに失敗しました。」
IIS は初めてですが、ガイドに従ってセットアップしました。私のサイトでは、ID が NetworkService に設定された DefaultAppPool を使用しています (ただし、ApplicationPoolIdentity を試してみましたが、何も変わらないようです)。
データベースの SQL サーバーに NT AUTHORITY\NETWORK SERVICE アカウントを db_owner 権限として追加しました。
認証設定で、匿名認証のユーザー ID を「アプリケーション プール ID」に設定しています。
C:\inetpub\wwwroot フォルダーへのアクセス許可を NETWORK SERVICE に与えましたが、それも何の役にも立たないようです。
他に何を試すべきか本当にわかりません。Visual Studio のデバッグではすべてがうまく機能したため、問題はアクセス許可または ID にあるに違いないことがわかりますが、配置後のどこに問題があるのかはわかりません。これは私の最初の IIS 展開であり、大学の学部のコンピューター サイエンス プログラムのプロジェクト用です。私は一日のかなりの部分をグーグルで検索しており、多くの適用可能な提案を試みましたが、残念ながら何も機能していないようで、解決策を探すために何を検索すればよいか少しわかりません.
それが問題かどうかはわかりませんが、コードビハインドからすべてデータベースに接続しています。接続するコードと、それをどのように使用しているかは次のとおりです。
SqlDataSource sdb = new SqlDataSource();
sdb.ConnectionString = "Data Source=< SQLServerAddress >;Initial Catalog=sdb;";
sdb.SelectCommand = "SELECT someAttribute, someOtherAtt FROM SomeTable";
dropDownList.DataSource = sdb;
dropDownList.DataTextField = "someAttribute";
dropDownList.DataValueField = "someOtherAtt";