我有一个网站项目设置,可以使用visual studio 2012中的IIS Express。一旦启动它就会慢慢耗尽我的开发计算机上的内存。一旦我部署它,它似乎保持相当稳定。显然在某处存在内存泄漏,但由于它在现场服务器上似乎没有发生,所以我并不太担心它(并且经过几天试图调试它后,我仍然无法找到它它)。
在我的开发计算机上,如果我忘记在一夜之间将其关闭,它会占用我系统上的所有内存并开始分页到磁盘。当我第二天早上来的时候甚至需要很长时间来杀死它,因为操作系统也被推入分页内存并且非常迟缓。
查看https://technet.microsoft.com/en-us/library/cc745955.aspx上的示例我认为我应该能够强制应用程序池在达到3gig使用级别时自行回收以避免问题。
我已进入我的C:\ Users \ username \ Documents \ IISExpress \ config \ applicationhost.config文件,并使用以下内容替换了第一个应用程序池的部分:
<add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true">
<recycling>
<periodicRestart privateMemory="600000">
<schedule>
<clear />
</schedule>
</periodicRestart>
</recycling>
</add>
不幸的是,当我的项目运行时,它很快就超过了600,000KB的限制,我试图在没有重新启动的情况下强加它。我已经尝试了内存和privateMemory属性,都无法做任何事情。
我的项目设置为使用.NET v4.0集成模式,并且通过搞乱Microsoft.Web.Administration我相当确定我的配置更改正在调整正确的应用程序池并且加载了回收设置我的项目,(但我是那个图书馆的新手,所以我并不完全确定。)
答案 0 :(得分:0)
它被设计为开发服务器,因此忽略所有应用程序池设置,并将其作为单个实例运行。
如果要测试其他Web服务器功能,例如应用程序池,则应切换到完整的IIS。