如果服务器 1 出现故障,我希望能够使用服务器 2,因此我有两个 Web 引用,但这会导致“模糊引用”错误,因为它在两个服务器上是相同的服务。
这是 C# 代码:
使用 App.org.weccrc.www;//主服务器 使用 App.org.weccrc.www2;//备份服务器
有没有办法在“using”语句之前检查server1上的服务是否可用?
这可以是条件语句吗?
或者有另一种方法可以解决这个问题。
提前致谢
劳尔
请您参考如下方法:
我会做这样的事情
public R CallWebservice<T,R>(T service, IEnumerable<string> urls, Func<T,R> serviceCall)
where T : SoapHttpClientProtocol, IDisposable
{
foreach (var url in urls)
{
try {
service.Url = url;
return serviceCall(service);
} catch (Exception ex) {
// Log Error
continue;
} finally {
service.Dispose();
}
}
// throw exception here which means that all url's failed
}
你可以称它做这样的事情
Employee[] employees = CallWebService(
new DownloadService(),
new string[] { "http://site1/service.asmx","http://site2/service.asmx" },
service => service.DownloadEmployees()
);
这将遍历指定的每个 URL 并调用网络服务。如果失败,则它只会尝试执行下一个 URL,直到成功执行。
