BindIPEndPointDelegate を使用して HttpWebRequest のソース ポートを変更する方法をあちこちで検索しました。これに関する複数の投稿を見つけました:
しかし、それは私のために働いていないようです。この男にも同じ問題が見つかりました: Visual Studio 2010 で SOAP Web サービスの発信/呼び出しポートを定義する
基本的に、Web ページに接続するときにソース ポートを変更したいと考えています。BindIPEndPointDelegate は非常に簡単です。
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.ServicePoint.BindIPEndPointDelegate = (servicePoint, remoteEp, retryCount) =>
{
return new IPEndPoint(IPAddress.Any, 8086);
};
netstat -n を使用して接続を確認すると、送信元 IP アドレスとして myipaddress:8086、送信先 IP:80 が表示されるはずです。netstat に表示されるのは、指定したポートでループバック (127.0.0.1:8086) を作成していることです。netstat -nのスクリーンショットを見る
初めての投稿なので画像は載せません。というわけで画像はこちらから
BindIPEndPointDelegate がループ バック接続を作成するのはなぜですか? また、指定したポートで WebRequest をブラウザーのように動作させるにはどうすればよいですか?
私はwin7 Proボックスを使用しており、ローカルファイアウォールはなく、プロキシを経由していません。