如何在客户端代码中以编程方式更改终结点地址?

6
我该如何在客户端编程中以程序方式更改终结点地址?
2个回答

8
proxy.Endpoint.Address = new EndpointAddress("http://newaddress");

其中proxy是导入WSDL时生成的客户端类的实例。或者在创建客户端代理时可以指定地址:

var endpoint = new EndpointAddress("http://newaddress");
var proxy = new SomeClientProxy("BasicHttpBinding_IHelloWorld", endpoint);

6
在创建代理后,您实际上无法更改终端节点 - 您必须在调用代理的第一个方法之前完成此操作。 - marc_s
好主意@marc_s。这是否意味着我给出的第一个例子不起作用,或者只有在调用第一个方法之前才能起作用? - Darin Dimitrov
1
@Darin:我认为如果在服务的方法已经被调用后再尝试这样做,它会抛出异常(不过我不是100%确定)。最佳实践是在任何调用之前始终先进行这些设置操作 :-) - marc_s
帮忙看看。如果我不改变任何东西,我的服务调用是可行的。但如果我改变URL(类似于上面的代码),就会出现SecurityNegotiationException异常。即使我将URL设置为调用之前的相同值(实际上什么也没改变)。 - HitLikeAHammer

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接