【发布时间】:2015-08-09 03:08:28
【问题描述】:
我有一项服务正在由第三方进行负载测试。开始几分钟后,我们开始看到请求挂起很长一段时间,调用者最终超时(60 秒后)。
他们正在测试 15 个用户,每个用户同时使用两台设备,因此总共有 30 个连接。
服务是更复杂操作的简单外观,调用外部系统。对我们与外部系统的通信进行基准测试,看起来一切都在我们预期的时间内(不到 200 毫秒)响应。
IIS 日志显示了一堆非常高的请求(> 200 秒),这些请求最终确实返回 200 并具有 Win32 错误代码 ERROR_NETNAME_DELETD(错误 64)。我检查了服务日志,可以匹配对请求的响应(基于 SOAP 消息 ID),并且可以看到我们最终以正确的信息响应(尽管客户端早已放弃)。
关于什么可能导致这种行为的任何想法?我们使用 wsHttpBinding 在 IIS 中托管,并且我们使用 WS-Security 和 x509 证书(消息和传输加密)。
我们的服务内部没有基准日志记录,但代码是 WCF 请求到服务器请求的非常简单的映射,发出请求,并将响应映射到 WCF 响应。我们手动执行此操作,不涉及解析(直接分配)。
【问题讨论】:
-
服务实例化是如何配置的?并发是如何配置的?
-
使用同步 = false, Instance Per Call
标签: performance wcf iis soap scalability