具有动态URL的Web服务

时间:2011-05-13 20:47:11

标签: c# web-services visual-studio-2010

我有一个项目,其中有几个对webservices的引用,并且已经为服务创建了两个不同的配置文件(一个用于dev / stage,一个用于生产)。使用最初添加的webservices中的哪个URL工作正常,但另一个失败。

例如,如果我使用“添加Web引用”按钮在server1上添加服务,那么在运行我的应用程序时一切正常。如果我然后切换配置文件,所以它试图在server2上使用相同的服务我的应用程序不再有效。每次调用.net都会使webservice返回null。如果我使用fiddler查看服务器返回的XML,它们看起来完全相同。

此外,无论何时重建Web服务(即使没有任何更改),我都必须刷新应用程序中的所有引用。不知道那是否相关。

导致这种情况的原因是什么方法可以修复它?

1 个答案:

答案 0 :(得分:0)

我正在做一个有这个的大项目。

用户使用自己的Web服务端点创建一个帐户,因此我需要它们是动态的。

技巧是在每次调用服务之前始终更改端点地址。

Find服务的示例

FindClient wsFin = new FindClient();
wsFin.Endpoint.Address =
    new System.ServiceModel.EndpointAddress(clientUrl.TrimEnd('/') + "/Find.svc");

就像注意:对于WCF服务,我更倾向于使用svcutil创建代理而不是添加引用,但对于asmx Web服务,我确实添加了引用:)