我们有一个ASP MVC应用程序(C#),由于端口耗尽,我们的Web服务器一直存在问题。这种情况每两周发生一次,重新启动可以解决问题。但是我想深入研究这个问题并找到一个永久性的解决办法来避免重启。
我读了this article,这非常有用。但是,它提到了这个:
所以,如果你看到一个进程耗尽了很多端口,与一个远程地址或几个远程地址通信,并且连接状态就像TIME_WAIT那样,这个过程通常是一个死的赠品问题并且没有正确释放这些端口。
(强调我的)
然后再进一步说明这一段:
我在上面提到内存泄漏也会导致这种行为 - 为什么会这样?会发生的是,为了使端口用于出站连接,进程需要获取该端口的句柄。该句柄来自非分页池内存。因此,如果您有内存泄漏,并且用完了非页面缓冲池,那么需要与网络上其他计算机通信的进程将无法获取句柄,因此将无法获取他们需要的港口。
问题:
要记住的最后一件事是我是程序员而不是管理员(如果这样做有帮助的话)。