在以下设置中,Web应用程序通过Web套接字与第三方服务器端软件进行通信:
出于测试目的,我在单台计算机上配置了以下设置(关于下面所述的问题,其行为方式相同)
只要初始连接是通过wss
协议而不是ws
完成的,常规设置就可以工作。在这种情况下,将发送固定数量的帧,然后第三方服务器端软件将一些帧发送回去,然后“对话”继续进行(如Chrome开发工具所示)。
在任何一种设置中使用ws
时,通过网络套接字仅发送初始固定数量的帧,但没有收到任何回传。
为了分析问题,我在IIS中配置了失败的请求跟踪,以记录每次URL重写时的所有内容。我在日志中可以看到的一个明显方面是,第二个URL重写日志(一个更靠近第三方服务器的日志)似乎向我展示了答案的发送方式(从WEBSOCKET_WRITE_FRAGMENT_START
类型的行开始),而此时,第一个URL重写日志指示一个I / O错误(“由于线程退出或应用程序请求(0x800703e3),I / O操作已中止”。
为什么Web套接字响应无法通过?
一些附加说明: