0

我使用 net.tcp 绑定在 IIS 中托管的 WCF 服务存在性能问题。

我们最近将系统从 COM+ 移植到 WCF,测试表明性能下降。我一直在查看服务器上的性能计数器,CPU 利用率非常低(< 10%),可用内存充足,磁盘读取正常等...我还检查了 WCF 性能计数器和未完成的数量调用次数很少(在任何给定时间最多 1 次),每秒调用次数非常低(系统使用最多的服务每秒调用 16 次)。我们所有的服务都配置为每次调用和单线程......

我已经玩过节流并将所有设置的所有值设置为 100(服务器是 8 核机器,我的理解是实际的节流值最终是您设置的值乘以 CPU 数量)。我不认为那里有问题。

我还确保客户端有效地使用它的连接(而不是在存在可以使用的现有 tcp 连接的情况下创建新连接)

当前的 Web 应用程序托管大约 50 个服务(是的,就是 50 个!),目前我正试图消除这个问题的根源。我正在考虑在多个 Web 应用程序中托管服务,我也想让它们使用不同的端口,但我遇到了一些问题,我无法在任何地方的互联网上找到分步说明,所以我希望这里有人可以帮助我:)

到目前为止,这是我尝试做的事情:
1)我在 IIS 中向默认网站添加了另一个绑定(也就是说,我有两个 net.tcp 绑定,一个设置为使用“808:*”绑定信息和另一个使用“809:*”) 2)我确保这些端口被允许通过防火墙
3)然后我尝试配置每个单独的 Web 应用程序以过滤端口(这是来自 web.xml 的片段)配置我想使用端口 808):

<
serviceHostingEnvironment> <baseAddressPrefixFilters>
<add prefix="net.tcp//<servername>:808"/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>

当我尝试连接到该服务时,我得到一个端点地址“net.tcp://<servername>/SomeService.svc”的服务对于地址的协议不可用

如果我删除 <serviceHostingEnvironmentgt; 少量。我在这里做错了什么?

其他服务,例如我想在端口 809 上可用的服务根本不可用,我收到的错误消息告诉我端点不存在,看起来 IIS 根本没有在那个端口上监听。如前所述,防火墙绝对允许此端口通过。

非常感谢任何关于托管这么多服务时最佳设置的想法或建议!

谢谢!

4

1 回答 1

1

这是一篇旧帖子 - 但是...关于端点错误 - 尝试在应用程序而不是站点级别设置网络绑定信息。

于 2011-03-14T07:21:07.580 回答