2016-11-09 18 views
0

私はこの奇妙な問題に直面しています。私はpocをするように頼まれました。だから、私は素早く汚れたアプリケーション(コンソールアプリケーション)をやった。私はURLをヒットし、応答の特定の部分を解析することでした。 URLがwww.google.co.ukであるとします。コンソールアプリケーション上の私のコードはうまくいきました。その後、私はそれを私のWebアプリケーション(asp.net 4.5、Web APIのコントローラメソッド上で動作します)に移植しました。同じコードが、すぐにURLにヒットしようとするとエラーを出すようになりました。コードは以下の通りであるリモートサーバーに接続できません:ターゲットマシンが積極的に拒否したため、接続できませんでした

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(contentDeliveryURL)); 
request.CookieContainer = cookieContainer; 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

エラーだった:リモートサーバーに接続できません:ターゲットマシンが積極的に私にトンそれは、のGetResponseに失敗し

を拒否したため、接続なしが(行わないことができます) Web Apiコントローラのメソッド。今私はそれが内部的にホストされている(私たちの企業ネットワーク内にある)URLをヒットしようとしたので、プロキシとは関係があることを知っています。私の質問は、なぜデスクトップアプリケーションで私はプロキシ情報を提供していないが、Webで私はする必要がありますか?デスクトップアプリケーションはプロキシ情報をどのように読み取るのですか?私はまた、アプリケーションプールのアイデンティティをWebアプリケーションで自分のアカウントを使用するように祈ったが、それでも働いていない(私は、あなたがアプリケーションプールが実行されているユーザーを変更することについての提案を与える場合)

答えて

1

アプリケーションは、ユーザーのプロファイルにバインドされています。 (これはIEを使ってインタラクティブに設定する最も簡単な方法です。).NETアプリケーションはその設定を尊重し、他の多くのアプリケーションはFiddler、Chrome、FFなどの同じ設定を尊重します。実際にその設定を尊重しないアプリケーションは、互換性がない。 (Javaアプリケーションなど)

キャッチは「ユーザーのプロファイルにバインド」されています。したがって、特別なユーザーアカウントで実行されるサービスは、対話ユーザーと同じ設定になります。 (またはまったく設定がありません)

最も安全な解決策は、.NET httpクラス用のコードでプロキシを設定することです。もちろん、ハードコードされていない設定ファイルから読むことができます。

関連する問題