接続文字列で提供された認証を使用していない SQL 接続文字列に問題があります。自己追跡エンティティを使用して ASP.NET アプリケーションを作成しましたが、2 つの異なるサーバーからデータにアクセスする必要があります。最初のサーバーである SQLSERVER1 は Windows 認証を使用しており、ドメイン上にあり、データを正常にプルできます。ただし、2 番目のサーバー接続はドメイン外の別のボックスにあり、データにアクセスするには特定のログインとパスワードを使用する必要があります。接続文字列で使用している資格情報がサーバーに問題なく接続できることを確認しました。
Web サーバーのセットアップでは、独自の資格情報「Domain\AppPoolUser」で実行されている IIS7 のアプリケーション プールを使用しています。
何らかの理由で、Web サーバーに公開した後に SQLSERVER2 からデータを呼び出そうとすると、接続文字列で資格情報を指定し、それらが有効であるにもかかわらず、次のエラーが発生します。ただし、アプリケーションをローカルでデバッグしている場合、接続は正常に機能します。ユーザー「DOMAIN\AppPoolUser」のログインに失敗しました。
接続文字列で指定した資格情報を使用しておらず、代わりにアプリケーション プールの資格情報として接続しようとしているようです。提供した資格情報を使用するように接続文字列を設定するにはどうすればよいですか? ここに私の接続文字列があります:
<add name="ADATrackingContext" providerName="System.Data.SqlClient" connectionString="Server=SQLSERVER1;Database=ADATracking;Integrated Security=True;" />
<add name="PatientContext" providerName="System.Data.SqlClient" connectionString="Server=SQLSERVER2;Database=Patients;uid=PatientUser;password=123456;Integrated Security=False;" />