我有一个项目,其中有几个对webservices的引用,并且已经为服务创建了两个不同的配置文件(一个用于dev / stage,一个用于生产)。使用最初添加的webservices中的哪个URL工作正常,但另一个失败。
例如,如果我使用“添加Web引用”按钮在server1上添加服务,那么在运行我的应用程序时一切正常。如果我然后切换配置文件,所以它试图在server2上使用相同的服务我的应用程序不再有效。每次调用.net都会使webservice返回null。如果我使用fiddler查看服务器返回的XML,它们看起来完全相同。
此外,无论何时重建Web服务(即使没有任何更改),我都必须刷新应用程序中的所有引用。不知道那是否相关。
导致这种情况的原因是什么方法可以修复它?
答案 0 :(得分:0)
我正在做一个有这个的大项目。
用户使用自己的Web服务端点创建一个帐户,因此我需要它们是动态的。
技巧是在每次调用服务之前始终更改端点地址。
Find
服务的示例
FindClient wsFin = new FindClient();
wsFin.Endpoint.Address =
new System.ServiceModel.EndpointAddress(clientUrl.TrimEnd('/') + "/Find.svc");
就像注意:对于WCF服务,我更倾向于使用svcutil
创建代理而不是添加引用,但对于asmx
Web服务,我确实添加了引用:)