0

接続文字列で提供された認証を使用していない 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;" />
4

3 に答える 3

0

それが重要かどうかはわかりませんが、ユーザーはそうあるべきでUser Id=あり、そうではないはずですuid=

于 2012-06-12T18:58:36.333 に答える
0

Integrated Security = true を設定しているため、ADATrackingContext 接続文字列は Domain\AppPoolUser ドメイン アカウントを使用してログインを試みます。データベースのログインとして Domain\AppPoolUser がないため、説明したエラーが発生します。

正しい接続文字列を DbContext に渡していることを再確認してください。

于 2012-06-12T19:41:01.070 に答える
0

クライアント ページが ADATracking 接続文字列に対して認証される前にデータを取得しようとしたため、エラーが発生したようです。データ呼び出しを Global.asax ファイルではなく HomeConstroller.cs に移動したところ、すべてが機能するようになりました。私の間違い。

于 2012-07-03T18:52:46.323 に答える