私は2つのWebリクエストを同じURLに送信する必要があるアプリケーションを持っていますが、異なるソースIPエンドポイントから送信します。ServicePointはローカルのIPエンドポイントに対して一意ではありません
Dim myWebRequest As Net.HttpWebRequest = Net.WebRequest.Create(MyUrl)
myWebRequest.ServicePoint.BindIPEndPointDelegate = MyBindIPEndPointFunction
デリゲート関数MyBindIPEndPointFunctionが呼ばれ、私はそれが正しいIPEndpoint、すべてが正常に動作与える:
この
は、次のような何かを実行して最初の接続で十分に簡単に行うことができます。しかし、2番目のリクエストでは、このURLのServicePointが既に存在するため、デリゲート関数MyBindIPEndPointFunctionが呼び出されないため、別のIPEndpointにバインドする2番目のWebリクエストを伝える方法がありません。
WebリクエストがSSLであるため、SSLを処理する必要があるだけでNet.TcpClientオブジェクトを使用するのは簡単ではありません。
理想的には、HttpWebRequestを通常の接続を作成して終了したら、ServicePointを使用せずにこれを閉じることができますか?また、スレッドセーフでノンブロッキングであるため、多くのスレッド(現在はすべて同じServicePointを使用しています)でリクエストを実行できます。
ありがとうございました。
と2を作成することができますまだ解決策を見つける – Jim
返信Jimに感謝します。最後に、私はTCPClientを書いて、SSLStreamオブジェクトを使用しました(私は存在しませんでした)、私は何か動作しています。あなたのアイデアは面白く見えます。 – Panafe
問題ありません。将来的に役立つことを願っています。 – Jim