【发布时间】:2010-05-04 15:48:18
【问题描述】:
我们已经在测试中复制了这个问题,所以我很乐意提出这个问题 - 不是我理解它或任何东西。 ;-)
WebMethods 正在连接到 IIS Web 服务(我是 IIS 人,而 WebMethods 人没有回答我。)不过,IIS 在大多数调用中都会抛出 200 0 1236 错误。原因是 Timer_MinFileBytesPerSec。 WebMethods 对 IIS 发送的结果很满意,但并不总是礼貌地关闭网络对话。这不是问题,除非我们同时在飞行中接到两个电话。如果 IIS 为 MinBytes 终止了第一个 convo,它将终止具有该 IP 地址的所有打开的 convo,从而顺便终止第二个对话。 WebMethods 吐了那个错误,我被叫了。
有什么方法可以强制 WebMethods 礼貌地结束网络对话?
车队是这样的:
会议失败:
WebMethods sends SOAP in 2 packets - SOAP + HTTP continuation
IIS sends ACK
15 second processing delay
IIS sends SOAP reply with ACK/PUSH/FINISH flags
WebMethods sends ACK flag
15 second delay
IIS sends Reset flag and conversation dies
会议成功:
WebMethods sends SOAP in 2 packets - SOAP + HTTP continuation
IIS sends ACK flag
15 second processing delay
IIS sends SOAP reply with ACK/PUSH/FINISH flags
WebMethods sends ACK flag
6 second delay
WebMethods sends ACK/FINISH flag
IIS sends ACK flag
We all go home happy
如果我在 IIS 上扩展 ConnectionWaitTimeout 和 HeaderWaitTimeout 并收缩 MinFileBytesPerSec 设置,我可以让 IIS 无限期地等待 WebMethods 礼貌地发送 ACK/FINISH,但它永远不会出现。
有什么想法吗?
【问题讨论】:
-
这 15 秒的处理延迟是多少?大多数网络客户端,即。浏览器,处理不了。您是否向其发送 Keep-Alive 标头?
-
好问题。我已经向开发人员询问了几次,但无法解决。长等待时间通常适用于几种实现,因此他们提出了自己的理由。这是第二个延迟问题 - 等待 WebMethods 发送他们的第二个 ACK 并添加 FINISH。这对我来说都是黑匣子。我不知道他们在 6 秒 ACK/FINISH 发生时他们在做什么不同,但这是在 WM 方面。不,他们不会在成功或不成功的 convos 上发送 Keep-Alive 标头。
标签: iis webmethods