Questions tagged «wcf-client»

26
WCF客户端“使用”块问题的最佳解决方法是什么?
我喜欢在一个using块中实例化WCF服务客户端,因为这几乎是使用实现资源的标准方法IDisposable: using (var client = new SomeWCFServiceClient()) { //Do something with the client } 但是,正如此MSDN文章中所述,将WCF客户端包装在一个using块中可能会掩盖导致客户端处于故障状态(如超时或通信问题)的任何错误。长话短说,当调用Dispose()时,客户端的Close()方法将触发,但由于处于故障状态而将引发错误。然后,原始异常被第二个异常掩盖。不好。 MSDN文章中建议的解决方法是完全避免使用using块,而是实例化客户端并使用如下所示的客户端: try { ... client.Close(); } catch (CommunicationException e) { ... client.Abort(); } catch (TimeoutException e) { ... client.Abort(); } catch (Exception e) { ... client.Abort(); throw; } 与using块相比,我认为这很丑。每次需要客户时,都会编写很多代码。 幸运的是,我发现了其他一些解决方法,例如在IServiceOriented上的解决方法。您从开始: public delegate void UseServiceDelegate<T>(T proxy); …
404 c#  vb.net  wcf  using  wcf-client 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.