【发布时间】:2010-09-18 19:53:06
【问题描述】:
希望听到在企业环境中使用 WCF 的人的意见。
推出的主要障碍是什么? 性能问题? 任何和所有提示都表示赞赏!
如果可以,请提供一些一般统计数据和服务器配置!
【问题讨论】:
-
这真的很模糊,以至于我认为您不会得到任何有用的答案。尝试更具体。
标签: wcf performance enterprise
希望听到在企业环境中使用 WCF 的人的意见。
推出的主要障碍是什么? 性能问题? 任何和所有提示都表示赞赏!
如果可以,请提供一些一般统计数据和服务器配置!
【问题讨论】:
标签: wcf performance enterprise
WCF 可以是configuration hell。一定要熟悉它的diagnostics and svcTraceViewer,以免产生神秘的、无用的异常。并注意生成的客户端的broken implementation of the disposable pattern。
【讨论】:
我最近被一家公司聘用,该公司以前使用传统的 asp.net Web 服务处理客户端/服务器通信并来回传递数据集。
我重新编写了核心,所以现在有一个 Net.Tcp “连接”客户端......一切都通过那里完成。这是一个值得“生产中发现”的一周……但非常值得。
我们必须在游戏后期发现的痛点是: 1)默认限制阻止第 11 个用户向前(默认只允许 10 个)。 2)默认的“maxBufferSize”设置为65k,所以需要下载的第一个位图使服务器崩溃:) 3) 其他默认配置(最大并发连接数、最大并发调用数等)。
总而言之,这绝对物有所值...只需更改应用程序的基础架构,应用程序的速度就会快很多,而且现在我们已经“连接”了用户...服务器可以将消息向下发送到客户端。
其他美妙的收获是,由于我们 100% 知道谁在连接,我们实际上可以在应用程序级别执行我们的许可政策。在此之前(以及在我被录用之前),我的公司必须简单地登录,然后在月底向客户收取额外的费用,因为连接次数过多。
【讨论】:
如前所述,配置噩梦和异常可能很神秘。您可以启用跟踪并使用跟踪日志查看器对问题进行一般性故障排除,但这绝对是对 WCF 服务进行故障排除的一种方式,尤其是在您部署它并且在代码执行之前遇到问题时。
对于我组织内的组件之间的通信,我最终在我的服务和代理上使用了[NetDataContract],这是推荐的(您不能与 .NET 之外的平台集成,并且需要具有合同的程序集进行集成)虽然我发现性能非常出色,并且通过使用它减少了我的整体开发时间。对我们来说,这是正确的解决方案。
【讨论】:
WCF 绝对适合企业产品,因为它在设计时考虑到了可伸缩性、可扩展性、安全性等……。
正如 maxidad 所说,这可能非常困难,因为异常通常几乎不会告诉您任何信息,如果您使用安全性(显然对于企业场景),您必须处理证书、无意义的 MessageSecurityExceptions 等等。
处理 WCF 服务肯定比处理旧的 asmx 服务更难,但一旦进入,就值得付出努力。
提供服务器配置对您没有用处,因为它必须适合您的场景。使用正确的绑定非常重要,以及安全性、并发性。使用 wcf 时没有单一的方法。想想你的要求。你需要回调,你的用户是什么?您需要什么样的安全措施?
但是,WCF 绝对是适合企业级应用程序的技术。
【讨论】: