首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c#如何在客户端管理wcf服务代理生命周期?

c#如何在客户端管理wcf服务代理生命周期?
EN

Stack Overflow用户
提问于 2013-09-23 13:11:40
回答 2查看 1.8K关注 0票数 3

我编写了一个WCF服务,具有一些常规功能(添加用户、删除、搜索、更新.)。此功能的实现在实体框架中(使用sql )。

现在我想在客户端使用它。我有一些基本问题:

  1. 我在客户端有很多对WCF方法的调用--每次调用时是否都要尝试捕捉?
  2. 每当我想调用方法(例如AddUser(用户用户))时,我都需要创建一个服务实例,如下所示: WcfService client =新WcfService();client.AddUser(用户); 在另一个地方我写道: WcfService client =新WcfService();//再次生成一个新实例.Client.UpdateUser(用户);

我应该为我的wcf服务的所有应用程序创建一个实例吗?还是每次调用方法之前都要创建一个新实例?(如上例所示)。

非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-23 13:14:47

(I)您可以为服务创建一个实例一次,并在需要进行方法调用时使用同一个客户端。如果您正在中止或关闭连接,则每次都需要创建。

(Ii)最好在每种方法中使用try catch方法,这样就很容易关闭连接并识别异常。

票数 4
EN

Stack Overflow用户

发布于 2013-09-23 14:12:47

在许多情况下,您希望重用同一个客户端代理,因为此连接方法获得最佳性能。如果使用安全特性,则重用相同的代理可能特别有益,因为这些特性具有较高的初始安全协商成本。注意:在使用之前,您肯定需要检查客户端代理的状态。

如果重用同一个客户端代理不是一个选项,那么请考虑使用使用缓存的ChannelFactory代理。

下面的链接提供了一个很好的解释以及最佳实践建议:http://blogs.msdn.com/b/wenlong/archive/2007/10/27/performance-improvement-of-wcf-client-proxy-creation-and-best-practices.aspx

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18960145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档