我们在asmx页面中用c#编写了一个Web服务。 asmx页面没有代码,只转发到asmx.cs代码。几天后,服务变得不可用,导致不可用资源的异常。当我们分析问题时,我们发现它正在为进程w3wp.exe保存数十万(> 800,000)句柄,这是应用程序池进程。作为分析的一部分,我们从服务中删除了所有功能,甚至创建了一个只有默认Hello World代码的新服务。这个问题仍然存在。 这种情况发生在IIS 6和7.5上的.NET 2.0,.NET 3.5和.NET 4.0上 似乎很奇怪,没有其他人在网上任何地方讨论这个问题,但我们在任何地方都没有发现类似的问题。请注意,内存不会泄漏,只有进程句柄。 我们现在唯一的解决方案是定期回收应用程序池。