2

問題を解決できましたが、解決策が気に入らないので、理解を助けてほしいです。

Azure REST API サービスに対して HttpWebRequest を作成する WCF サービスがあります。ただし、このコード行が呼び出されると

HttpWebResponse response = (HttpWebResponse) request.GetResponse();

403 Forbidden エラーが返されます。コンテンツの長さは 0 で、エラー コードと説明の両方に「禁止」と表示されます。

コードをコンソール アプリケーションにコピーすると、問題なく動作します。したがって、これは、アプリケーション プール ID 内のアクセス許可に帰着すると私に信じさせました。

案の定、アプリケーション プールの ID を自分自身に変更すると、コードが機能し始めます。

私の質問は、HttpWebRequest を実行できるように、組み込みのApplicationPoolIdentityアカウントにアクセス許可を付与するにはどうすればよいですか?

4

1 に答える 1

0

この問題は、 ApplicationPoolIdentityユーザーがユーザー設定を使用できないことが原因である可能性があります。

WebRequestを作成し、サービスがコンソールアプリケーションとして自己ホストされている場合と、 ApplicationPoolIdentityを使用してIISでホストされている場合の両方で機能するWCFメソッドをテストしました。

私はそれをWindows7マシンでテストしました。

問題を引き起こす可能性のある設定の1つは、企業環境で一般的に使用されているHTTPプロキシです。

ログインしたユーザーのプロキシ設定がある場合は、次のことを試みることができます。

1.WebRequestのProxyプロパティをプログラムで設定します。

ドキュメントについては、こちらをご覧ください。

また

2. Web.configでdefaultProxy要素を設定して、使用するプロキシを設定します

ドキュメントについては、こちらをご覧ください。

お役に立てれば

于 2012-12-15T16:01:50.127 に答える