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