首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >您是否应该在两次调用之间始终断开与WCF服务的连接?

您是否应该在两次调用之间始终断开与WCF服务的连接?
EN

Stack Overflow用户
提问于 2011-01-27 04:00:48
回答 1查看 705关注 0票数 3

我正在使用WCF服务来管理在远程计算机上运行的windows服务。我们有一个管理客户端,用于修改windows服务配置,以及实时监控服务的状态。为了实时监控,我们每秒轮询服务的状态。

目前,我们在监控服务的同时让客户端一直保持连接,但我不断地读到,建议对每个调用都进行连接和断开连接,就像数据库一样。

在我们频繁调用服务的情况下,是否建议这样做,或者连接和断开连接是否会给流程增加太多开销?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-27 05:27:32

默认情况下,作为推荐的最佳实践,你在WCF中使用每次调用激活,例如,对你的WCF服务的每个请求都会获得一个服务类的新实例,该实例处理你的请求,返回一个结果,然后被释放。

在这种情况下,我真的看不到不断中断和重新建立通信通道的任何意义(例如,不断地处理和重新创建代理客户端)。在WCF服务端,没有任何东西会在内存中“徘徊”并占用资源或类似的东西。此外,与大多数数据库相反,通常也没有“每个连接”的许可或任何涉及的东西。

在这种情况下,您需要能够处理的情况是您的通信通道进入“故障状态”,例如,当发生一些不好的事情时--当服务调用失败并抛出异常时,或者当网络故障导致您的通道中断时。在这种情况下,您的客户端需要有恢复机制来处理此问题并重新建立连接。

如果你有面向会话的WCF服务,情况可能会略有不同-但这些绝对应该是例外,并且只有在需要时才会使用。

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

https://stackoverflow.com/questions/4809383

复制
相关文章

相似问题

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