我们已经在测试中复制了这个问题,所以我觉得问这个问题很好——不是我理解它或任何东西。;-)
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
成功的convo:
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,但它永远不会出现。
有什么想法吗?