Skip to main content
 首页 » 编程设计

c#之我在服务器 1 上使用 Web 服务,如果服务器 1 出现故障,我如何更改到服务器 2(使用 C#)

2024年02月24日30落叶无声

如果服务器 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,直到成功执行。