OLEDB を使用して MS SQL 分析サーバー サービスに接続する Web サイトがあります。私は C++ を使用して OLEDB API を呼び出し、それを DLL としてビルドします。これは IIS に読み込まれ、私の Web サイトによって呼び出されます。C++ モジュールをローカルで実行すると、OLEB API を呼び出してデータ ソースに正常に接続できますが、Web サイトは IIS のデータ ソースに接続できません。
エラーメッセージは「トランスポート層でエラーが発生しました」です。MSDN のドキュメントによると、これは認証の問題です。ただし、匿名ユーザーはデータ ソース側で許可されます。
また、私の Web サイトが VS2010 組み込みの Web サーバーで正常に動作することも不思議です。私が気づいたことの 1 つは、VS2010 組み込み Web サーバーとローカル C++ モジュールの両方が現在の使用アカウントで実行されており、IIS が Network Service アカウントで実行されていることです。そこで、この記事に従って現在の使用アカウントを使用して IIS を構成しました。しかし、IIS はまだデータ ソースに接続できません。
質問する
143 次
1 に答える
0
私はこの問題を解決しました。リクエストの処理に使用される IIS のスレッドの ID は、このドキュメントによると、多くのオプションの影響を受けます。impersonate が true で認証モードが Windows の場合、IIS が匿名認証を使用する場合、スレッドの ID は MACHINE\IUSR_MACHINE です。このアカウントはデータ ソースによって信頼されていません。IIS に他の認証モードを使用し、アカウントがデータ ソースによって信頼されている IIS にログインすると、この問題を解決できます。
于 2013-01-08T03:28:08.947 に答える