Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net ServicePoint不是本地IPEndpoint所独有的_.net_Vb.net - Fatal编程技术网

.net ServicePoint不是本地IPEndpoint所独有的

.net ServicePoint不是本地IPEndpoint所独有的,.net,vb.net,.net,Vb.net,我有一个应用程序,需要向同一个Url发送两个web请求,但来自不同的源IPendpoint 通过执行以下操作,第一次连接就可以很简单地完成此操作: Dim myWebRequest As Net.HttpWebRequest = Net.WebRequest.Create(MyUrl) myWebRequest.ServicePoint.BindIPEndPointDelegate = MyBindIPEndPointFunction 调用委托函数MyBindIPEndPointFunctio

我有一个应用程序,需要向同一个Url发送两个web请求,但来自不同的源IPendpoint

通过执行以下操作,第一次连接就可以很简单地完成此操作:

Dim myWebRequest As Net.HttpWebRequest = Net.WebRequest.Create(MyUrl)
myWebRequest.ServicePoint.BindIPEndPointDelegate = MyBindIPEndPointFunction
调用委托函数MyBindIPEndPointFunction,我给它正确的IPEndpoint,一切正常

但是,在第二个请求中,由于此Url已经有一个ServicePoint,因此不会调用委托函数MyBindIPEndPointFunction,因此我无法告诉第二个web请求绑定到不同的IPEndpoint

因为web请求是SSL,所以只使用Net.TcpClient对象并不容易,因为我必须处理SSL

理想情况下,我想要一种强制HttpWebRequest只创建一个正常连接并在完成后关闭它的方法,而不使用任何ServicePoint,这是可能的吗?我还希望这一切都是线程安全和非阻塞的,这样我就可以在多个线程中发出请求(目前都使用相同的ServicePoint)


谢谢。

始终可以在代码中设置端点,只需创建两个具有不同变量名和相同url的端点

  Private binding1 As New BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly)
  Private binding2 As New BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly)
Private WithEvents _Misc1 As Service_Misc.Misc_CallsClient = New Misc_CallsClient(binding1, New EndpointAddress("http://localhost:61928/Misc_Calls.svc"))
Private WithEvents _Misc2 As Service_Misc.Misc_CallsClient = New Misc_CallsClient(binding2, New EndpointAddress("http://localhost:61928/Misc_Calls.svc"))

我知道这个问题有点老了,只是想如果你没有找到解决办法,我会加上一个可能的答案。谢谢你的回答。最后,我编写了一个TCPClient,并使用了一个SSLStream对象(我不知道它的存在),我得到了一些有用的东西。你的想法看起来很有趣,没问题。希望将来能有所帮助。