调试Azure WebApp中的TCP / IP端口耗尽

我在部署到Azure应用服务的Web应用程序上收到TCP / IP端口耗尽错误.该问题与吞噬端口的RavenDB连接会话有关.我认为我有一个修复,应该是好的,但我感觉好了,因为我真的无法在部署环境中进行调试.

在调试问题时,我试图访问netstat,但我得到访问被拒绝的消息,似乎无法解决它.有什么想法吗?

切线:如何在Azure webapp中分配端口?提出的选项(如https://msdn.microsoft.com/en-us/library/aa560610(v=bts.20).aspx中所述)有减少套接字连接超时值或增加动态分配给客户端TCP / IP套接字连接的端口的上限范围.但是,我不认为这在Azure Web Apps中是可行的.

最佳答案 这可以通过更新您的Ravendb实例来解决!在这里阅读更多:

https://ayende.com/blog/173057/production-postmorterm-houston-we-have-a-problem.

来自changelog,release 3.0.30100:

Fixed UDP port leak in licensing component

也是这个,从3.0.30115:

[Major] [Prefetching] Fixed memory leak that could lead into slowness
of the server under heavy load impacting indexing and replication
mechanisms

以及有关Azure服务和端口可用性的一些有用知识:
http://www.freekpaans.nl/2015/08/starving-outgoing-connections-on-windows-azure-web-sites/

简而言之,问题出在异步调用中,无论出于何种原因,UDP回复数据包都会被丢弃/丢失.在问题解决之前,这将意味着异步调用一直在监听响应,直到例如崩溃或iisreset.

我们正在推出升级以尝试在接下来的24小时内修复同一问题的实例,但我想我会马上回复,所以如果这确实是你的问题,你也可以测试一下.

我将回到这篇文章,以确认问题将会消失 – 只有这样才能确定更新Ravendb并等待一两个星期.

点赞