我在 IIS 8 上设置了失败的请求跟踪,但它没有按预期记录错误;有一个 ASP 经典页面生成“500 内部服务器错误”,但 FailedReqLogFiles 文件夹为空。这是我的设置:
已安装失败的请求跟踪模块
为了跟踪 ASP Classic 页面生成的错误 #500,我设置了以下规则:
<traceFailedRequests>
<add path="*">
<traceAreas>
<add provider="ASP" verbosity="Verbose" />
<add provider="ISAPI Extension" verbosity="Verbose" />
<add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,FastCGI,WebSocket,RequestRouting" verbosity="Verbose" />
</traceAreas>
<failureDefinitions timeTaken="00:00:00" statusCodes="500-999" />
</add>
</traceFailedRequests>
- 由于我
enabled="true"
在网站默认值中设置了 100 多个网站:
<siteDefaults>
<traceFailedRequestsLogging enabled="true" directory="%SystemDrive%\inetpub\logs\FailedReqLogFiles" maxLogFiles="50" />
- 最后我创建了一个抛出错误的测试页面:
<%
Option Explicit
Response.Write a ' Variable is undefined: 'a'
%>
该错误已%SystemDrive%\inetpub\logs\FailedReqLogFiles
按预期登录,但实际内容页面生成的错误不是。这些页面的不同之处在于它们是通过重写模块调用的,并且 URL 看起来像https://example.com/about.html而不是https://example.com/about.asp
如何解决这个问题?
在这篇文章中有一个注释说:
我重新安装了 URL 重写模块,然后重新创建了失败的请求跟踪规则,确保在“WWW 服务器”提供程序的“区域”部分中存在(并选择)“重写”。
失败的请求随后被记录并包含事件查看器中不存在的信息,例如错误页面的完整 URL 和堆栈跟踪?