2012-06-28 50 views
1

我已经在WPF中创建了一个桌面应用程序,我希望以.exe文件的形式提供给客户端。允许用户指定端点

当前应用程序有一个Web服务引用它,其中Web服务将位于客户端Web服务器上。

根据客户端的不同,Web服务的URL很可能会发生变化,因此,在知道Web服务URL后,是否可以添加一个选项让用户自己添加服务引用?

app.config是设置端点地址的地方,所以如果应用程序启动时,它向用户显示一个文本框以输入url,然后在按钮上单击应用程序更新服务引用。这可能吗?

我遇到了很多不同的文章,但不知道是否有可能不必重新编译代码?

+1

服务客户端的ctor接受端点url作为参数,它可以很容易地定制。至少,WCF服务是这样的。 – Alex

+0

我将如何实施此解决方案? – Ebikeneser

+0

我扔了一些代码来演示。我目前正在(几个)项目中使用它,以便能够在开发,分段,质量和生产环境中无缝地部署它。 – Alex

回答

1

假设它是一个WCF服务,如果它被称为Service1你可以设置它的地址是这样的:

Service1Client wcfServiceClient = new Service1Client(); 
wcfServiceClient.Endpoint.Address = new System.ServiceModel.EndpointAddress("your uri here"); 
//now you will invoke the service in the address you defined 

ASMX服务(仍称Service1在这个例子中的一致性),可以设置这样的:

Service1 asmxService = new Service1(); 
asmxService.Url = "your uri here"; 
+0

优秀的答案。在具有相同Web方法但不同URL的虚拟服务上对其进行测试,结果很有效。快乐的时光。 – Ebikeneser