在过去(.net framework 3.5),我们需要小心关闭 WCF 客户端代理。
在 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