在Classic ASP中,我知道可以通过指定 .Status 属性来返回 HTTP错误标题,如下所示:
Response.Status = "404 File Not Found"
但是如何使用子状态返回更具体的错误代码,例如404.9或500.100?
我需要这样做以进行测试(因为我知道subStatus代码通常是由服务器动态添加的)
答案 0 :(得分:0)
IIS不会在流量日志中记录自定义子代码。
不要测试子代码。测试自定义错误返回的statusText属性。
答案 1 :(得分:0)
所以:似乎只能从Classic ASP代码生成“三位数”HTTP错误。
因此,测试自定义网页是否有效的唯一方法是调用网站上的“test.yyy”文件。
由于文件扩展名.yyy不是IIS MimeMap的一部分,静态文件处理程序将不会提供它,然后返回404.3错误。这样,我可以测试我的自定义错误页面。 此示例来自此Microsoft文章:https://www.iis.net/learn/troubleshoot/diagnosing-http-errors/how-to-use-http-detailed-errors-in-iis
因此,对于每个需要设置非常详细的错误消息(包括IIS 7/8下的HTTP子代码)的人来说,这里是您网站的“web.config”文件内容:(此文件只包含几个条目,但您显然可以为所需的每个HTTP代码/子代码组合添加条目.Microsoft在C:\ inetpub \ custerr中提供56个错误页面
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" subStatusCode="5" prefixLanguageFilePath="" path="E:\inetpub\vhosts\yourdomain.com\error_docs\404-5.html" />
<error statusCode="404" subStatusCode="4" prefixLanguageFilePath="" path="E:\inetpub\vhosts\yourdomain.com\error_docs\404-4.html" />
<error statusCode="404" subStatusCode="3" prefixLanguageFilePath="" path="E:\inetpub\vhosts\yourdomain.com\error_docs\404-3.html" />
<error statusCode="404" subStatusCode="2" prefixLanguageFilePath="" path="E:\inetpub\vhosts\yourdomain.com\error_docs\404-2.html" />
<error statusCode="404" subStatusCode="1" prefixLanguageFilePath="" path="E:\inetpub\vhosts\yourdomain.com\error_docs\404-1.html" />
<error statusCode="404" subStatusCode="0" prefixLanguageFilePath="" path="E:\inetpub\vhosts\yourdomain.com\error_docs\404-0.html" />
</httpErrors>
</system.webServer>
</configuration>
我希望它会有所帮助! :)