抱歉标题含糊不清,因为我真的无法简洁地解释这个问题。
基本上我有 Windows Server 2008 x64、IIS7、ASP.NET 2.05,并且我有一个在Classic AppPool 中运行的站点(不,我不能在 Integrated 中运行)。
第一次尝试加载 *.aspx 文件时(即在安装站点、重新启动服务器等之后)我收到此错误:
HTTP 错误 500.0 - 内部服务器错误
该页面无法显示,因为发生了内部服务器错误。
模块:IsapiModule
通知:ExecuteRequestHandler
处理程序:PageHandlerFactory-ISAPI-2.0-64
错误代码:0x800710dd
登录方法:匿名
登录用户:匿名
处理程序是默认的 IIS7 之一:
<add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
我什至尝试添加自己的 aspx 处理程序,如下所示:
<add name="aspx" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
唯一要做的就是将错误通知的 Handler 部分更改为 IsapiModule。
奇怪的是,这个错误只发生在第一次(或者当服务器空闲了几个小时)。一旦我看到这个错误,如果我刷新页面,一切都会好起来的。
我什至尝试删除 web.config 文件,但什么也没做。
我似乎无法在互联网上找到这个问题的单一答案。
编辑:我启用了失败的请求跟踪,这就是它显示的内容:
MODULE_SET_RESPONSE_ERROR_STATUS 警告 ModuleName="IsapiModule", Notification="EXECUTE_REQUEST_HANDLER", HttpStatus="500", HttpReason="Internal Server Error", HttpSubStatus="0", ErrorCode="操作标识符无效。(0x800710dd)", ConfigExceptionInfo =""
在它显示的错误之前:
NOTIFY_MODULE_START ModuleName="IsapiModule", Notification="EXECUTE_REQUEST_HANDLER", fIsPostNotification="false", fIsCompletion="false"
现在,当我将此与成功运行进行比较时,区别在于错误会产生 MODULE_SET_REPONSE_ERROR_STATUS 而成功运行不会(然后继续产生正确的 HTML 输出)。
编辑:我拿了一个简单的应用程序并试图让它运行,我收到了同样的错误。但是当应用程序池处于集成模式时,它运行良好!不幸的是,由于我无法指定的原因,我无法将我们的应用程序迁移到集成,但我将其缩小到应用程序池。此外,我不必重新启动服务器来重现错误,而是回收应用程序池即可。
摘要:
- 如下所述,事件日志中没有任何内容表明失败。我梳理了事件查看器中的所有日志