我有一个使用Nhibernate和
Linq2sql的复杂服务器应用程序.每天大约3次Linq2sql代码生成“值不能为空”的异常.一旦发生这种情况,代码将始终生成异常.诊断和解决根本原因将是漫长的并且将引入不稳定性.
当前的“修复”是每小时重新调整应用程序池.但是,从问题发生到服务循环发生之前,服务已经停止.我希望Web服务捕获异常并回收它自己的应用程序池.我希望所有其他Web请求在完成之前得到尊重.
解决方法
以下代码将回收当前站点的应用程序池.您需要添加对Microsoft.Web.Administration的引用
using (ServerManager iisManager = new ServerManager()) { sitecollection sites = iisManager.Sites; foreach (Site site in sites) { if (site.Name == HostingEnvironment.ApplicationHost.GetSiteName()) { iisManager.ApplicationPools[site.Applications["/"].ApplicationPoolName].Recycle(); break; } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。