0

这是场景:

我们在服务器上运行了一个由 ASP.NET 提供支持的内容管理系统,该系统由第三方构建,因此不幸的是,出于这个问题的目的,它必须被视为“黑匣子”。我不太了解它是如何工作的。其带有 IIS 7 的 Windows 2008。

几周后它会正常工作,然后每当有人尝试访问页面时,它就会突然开始返回此 .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自定义页面上的控件时。

有没有人对可能导致这种情况的原因有任何暗示或预感?例如,当服务器资源不足时会发生这种情况吗?

4

2 回答 2

1

为了将来参考,事实证明这是由于站点使用的 COM 组件中的内存泄漏导致的内存短缺。

在应用程序池回收设置上设置内存限制被证明是一种临时修复,直到内存泄漏得到排序。

于 2010-07-14T17:13:48.683 回答
0

我不知道以下是由复制/粘贴引起还是被异常消息截断,但是当我将您的 aspx 代码复制粘贴到新页面时,我首先收到一个编译时错误,即我的“如果”必须由“终止” End If”,但我不明白这会如何导致您收到消息。(在 ASP.NET 2.0 web 项目中使用 ASP.NET 开发服务器、VS2010 测试)

让我印象深刻的第二件事是这条线

<!--<%@ Register Src="/web/ContentLibrary/Section/section125.ascx" TagName="section125" TagPrefix="uc1" %><uc1:section125 ID="section125" runat="server" />-->

尽管注释仍然需要 section125.ascx 控件存在。会不会是 section125.ascx 控件内部产生了错误。

您可以尝试删除注释的@Register 语句吗?

于 2010-07-06T12:38:59.560 回答