场景:许多用户(10 到 100 个)正在浏览网站,浏览时,URL 重写/重定向规则被切换。应用程序随机崩溃,并在异常日志表中记录以下消息(我们使用 Enterprise Library Exception 框架):
Common Language Runtime detected an invalid program
细节:
An exception of type 'System.InvalidProgramException' occurred and was caught. ------------------------------------------------------------------------------ 07/12/2011 12:02:20 Type : System.InvalidProgramException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Message : Common Language Runtime detected an invalid program. Source : App_Web_wvjyf0pr Help link : Data : System.Collections.ListDictionaryInternal TargetSite : System.Web.UI.WebControls.Panel __BuildControlpnlSearchResult() Stack Trace : at ASP.my_underscore_seperated_page_name_aspx.function() at ...
服务器:Windows 2008R2
.Net:3.5
Web服务器:IIS7
奇怪的是,在 IIS 上启用失败请求跟踪以捕获状态代码 400 - 506 时,没有捕获到任何请求/响应。
我知道每次切换规则时,Web.config 都会被修改。过于频繁地修改 Web.config 会是原因吗?
Web.Config 中的规则如下所示:
<rule name="Redirect Rule For Page Name" enabled="false" stopProcessing="true">
<match url="PageName" />
<conditions>
<add input="SiteFolder/SubFolder/PageName.aspx" pattern="^(SiteFolder/)([^.])+(PageName.aspx)$" />
</conditions>
<action type="Redirect" url="http://www.MySite/SiteFolder/NewPage.aspx" appendQueryString="false" />
</rule>
任何帮助都将受到赞赏。
答案1
可以确定的是,每次触碰 web.config 文件时,它的 AppDomain 都会重新启动。
对我来说,这是有可能的,您可能会收到由 AppDomain 接收的请求,该请求随后不久被中止,应用程序也被清理。
提示斯科特: