以下是该方案:
我们有一个在服务器上运行的ASP.NET驱动的内容管理系统,它由第三方构建,因此不幸的是,为了这个问题,它必须被视为“黑匣子”。我不知道它是如何工作的。它的Windows 2008与IIS 7。
几周之后它会正常工作,然后突然它会在任何人试图访问页面时开始返回这个.NET Parser Error:
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: Cannot execute a program. The command being executed was
"C:\Windows\Microsoft.NET\Framework\v2.0.50727\vbc.exe" /noconfig
@"C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\7082fc73\4a06ea64\iscamrh7.cmdline".
Source Error:
Line 69: <!--<%@ Register Src="/web/ContentLibrary/Section/section125.ascx" TagName="section125" TagPrefix="uc1" %><uc1:section125 ID="section125" runat="server" />-->
Line 70: <%If useAltStyles Then %>
Line 71: <%@ Register Src="/web/Tags/tag46.ascx" TagName="tag46_14" TagPrefix="uc14" %><uc14:tag46_14 ID="tag46_14" runat="server" />
Line 72: <%Else %>
Line 73: <%@ Register Src="/web/Tags/tag41.ascx" TagName="tag41_16" TagPrefix="uc16" %><uc16:tag41_16 ID="tag41_16" runat="server" />
该消息提到它“无法执行”vbc.exe,我知道它与编译aspx页面有关。
从它引用的源代码行开始,它会在页面上尝试@Register
自定义控件时发生。
有没有人对可能导致此问题的任何提示或预感?例如。当服务器资源不足时会发生什么事情?
答案 0 :(得分:1)
为了将来参考,结果是由于网站正在使用的COM组件中的内存泄漏导致内存不足。
在内存泄漏排序之前,应用程序池回收设置的内存限制被证明是临时修复。
答案 1 :(得分:0)
我不知道以下是由复制/粘贴引起的还是由异常消息截断但是当我将你的aspx代码粘贴到新页面时我首先得到一个编译时错误,我的“如果”必须是以“结束如果”结束,但我不知道这会如何导致您收到的消息。 (在ASP.NET 2.0 Web项目中使用ASP.NET Development Server,VS2010进行测试)
让我印象深刻的第二件事是
<!--<%@ Register Src="/web/ContentLibrary/Section/section125.ascx" TagName="section125" TagPrefix="uc1" %><uc1:section125 ID="section125" runat="server" />-->
虽然评论仍然需要section125.ascx控件存在。可能是在section125.ascx控件内生成了错误。
您可以尝试删除已注释的@Register语句吗?