在过去(.net framework 3.5),我们需要小心关闭WCF客户端代理。WCF 4关闭客户端代理
在WCF 4中,客户端无法使用Close。但它在代理内部可用。
public class ServiceProxy : System.ServiceModel.ClientBase<IService>, ILoginService
{
}
是否关闭客户端代理不再需要?或者我们该怎么做?
在过去(.net framework 3.5),我们需要小心关闭WCF客户端代理。WCF 4关闭客户端代理
在WCF 4中,客户端无法使用Close。但它在代理内部可用。
public class ServiceProxy : System.ServiceModel.ClientBase<IService>, ILoginService
{
}
是否关闭客户端代理不再需要?或者我们该怎么做?
WCF代理需要显式关闭,如果您使用using()语句,则可能会丢失原始异常。 您可以在以下文章中找到有关此问题的详细信息。
来源:http://geekswithblogs.net/SudheersBlog/archive/2009/09/01/134430.aspx
http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/b95b91c7-d498-446c-b38f-ef132989c154 http://geekswithblogs.net/marcel/archive/2007/05/01/112159.aspx
这是推荐的最佳做法始终关闭在客户端完成使用时进行代理,因为关闭代理会终止与服务的会话并关闭连接。
或者,您可以使用代理的Dispose()方法关闭它。的Dispose()方法的好处是,你可以使用using语句来调用它,即使在异常
支票正面
http://geekswithblogs.net/bcaraway/archive/2008/07/06/123622.aspx
谢谢,事实证明,它是业务层中对system.servicemodel的缺失引用。 – 2010-12-02 08:06:32
我不知道你是什么意思是 - 我刚刚创建了一个示例WCF服务和一个客户端(都是.NET 4),并且代理中的客户端类(`ServiceReference1.Service1Client`)具有相同的`Close()`和`Abort()`方法在.NET 3.5中。 – 2010-12-01 11:23:18