Azure TCP分段和HTTP块

时间:2018-08-23 15:53:46

标签: azure tcp

我有一个Azure应用程序,可以连接到已安装的大量设备。直到今天一切停止工作为止,一切一直运转良好。我认为发生的事情是Azure现在正在分割较小的消息(有效载荷为87字节),这暴露了我的TCP处理程序中的错误。

有人知道是否有一种强制Azure不分割小的TCP消息的方法吗?

跟进-我认为这是因为HTTP消息被“分块”并作为2个TCP段发送。我的代码中有一个错误,无法处理直到现在才浮出水面的块。

我可以关闭Azure中的分块吗?

2 个答案:

答案 0 :(得分:0)

如果您的问题是是否有一种方法可以防止HTTP响应使用HTTP Chunked Transfer Encoding,则可能取决于您使用的服务器端API。设置Content-Length标头通常就足够了。

但是我认为您的问题是,是否可以强制Azure以一种避免客户端中的错误的方式缓冲IP数据包,即假设单个套接字Read()将返回完整的消息。在这种情况下,不会。它甚至可能不在Azure的控制范围之内,因为任何中间路由器都可能导致数据包传递的延迟,从而导致客户端的Read()返回部分消息。

答案 1 :(得分:0)

我在Disable chunking in Asp.Net Core

处找到了解决方案

总结:

response.Headers["Content-Encoding"] = "identity";
response.Headers["Transfer-Encoding"] = "identity";

这似乎禁用了不必要的分块。我不知道怎么办