プロキシでC#WebClientを使用する-プロキシサーバーに要求は行われませんか?
-
27-10-2019 - |
質問
プロキシサーバーを介して使用するバックグラウンド操作(ウィンドウサービス)があります。
基本的に、これを行っています: ジェネラコディセタグプレ
プロキシは、 FreeProxy を使用して自分で構成したプロキシです。
ログを有効にし、テストしているマシンで、Firefoxで使用するときにプロキシにリクエストが送信されていることを確認できます。
プロキシサーバーに認証は必要ありませんが、IPがオフィス内にある必要があります(Firefoxの証拠から、問題ではないと思います)。
ただし、バックグラウンドプロセスでは、Webクライアントを使用するときにプロキシを使用していないようです: ジェネラコディセタグプレ
プロキシからエラーは発生しませんが、プロキシが明示的に設定されていても、エラーなしで進んでいるようです。
情報は、プロキシ経由ではなく、正常に返されるようです。
WebClient
でプロキシを使用するときに欠けているものはありますか?
編集:詳細。サーバーでプロキシサービスを無効にすると、接続できないという例外が発生します。したがって、Webクライアントがプロキシにアクセスしようとしているように見えますが、そのトラフィックは実際にはプロキシを通過していません。 ジェネラコディセタグプレ
解決
FreeProxyがHTTPSトラフィックを受け入れていなかったことが判明しました。
プロキシはルーティングできるトラフィックの種類を返す必要があると思いますが、返されない場合、Webクライアントは何もしません。
HTTPSを受け入れることができるため、プロキシとしてBurpSuiteを使用するように切り替えました。
他のヒント
デフォルトでプロキシを使用するようにウィンドウを構成するか、コードでプロキシを手動で設定する必要があります。
私が知る限り、あなたはWebClientクラスを正しく使用しています。次のリクエストを見ることができます... ジェネラコディセタグプレ
ローカルボックスで実行されているFiddlerで。Fiddlerをシャットダウンすると、WebExceptionが発生します: ジェネラコディセタグプレ
内部SocketExceptionが次の場合: ジェネラコディセタグプレ
そうは言っても、プロキシは意図したとおりに機能していると思いますが、発信HTTPリクエストをログに記録していないだけです。