Asp classic 如何在带有HTTP子状态的经典ASP中发送HTTP错误代码?

Asp classic 如何在带有HTTP子状态的经典ASP中发送HTTP错误代码?,asp-classic,http-headers,http-status-codes,Asp Classic,Http Headers,Http Status Codes,在经典ASP中,我知道可以通过指定.Status属性返回HTTP错误头,如下所示: Response.Status = "404 File Not Found" 但是,如何返回更具体的错误代码和子状态,例如404.9或500.100 出于测试目的,我需要这样做(因为我知道子状态代码通常是由服务器动态添加的)IIS不会在流量日志中记录自定义子代码 不要测试子代码。测试自定义错误返回的statusText属性 So:似乎只能从经典ASP代码生成“三位数”HTTP错误 因此,测试自定义网页是否正常工

在经典ASP中,我知道可以通过指定.Status属性返回HTTP错误头,如下所示:

Response.Status = "404 File Not Found"
但是,如何返回更具体的错误代码和子状态,例如404.9或500.100


出于测试目的,我需要这样做(因为我知道子状态代码通常是由服务器动态添加的)

IIS不会在流量日志中记录自定义子代码


不要测试子代码。测试自定义错误返回的statusText属性

So:似乎只能从经典ASP代码生成“三位数”HTTP错误

因此,测试自定义网页是否正常工作的唯一方法是调用网站上的“test.yyy”文件

由于文件扩展名.yyy不是IIS MimeMap的一部分,静态文件处理程序将不会为其提供服务,然后返回404.3错误。这样,我可以测试我的自定义错误页面。 此示例来自这篇Microsoft文章:

因此,对于需要设置非常详细的错误消息(包括IIS 7/8下的HTTP子代码)的每个人,以下是网站的“web.config”文件内容:(此文件仅包含少数条目,但显然可以为所需的每个HTTP代码/子代码组合添加条目。Microsoft在C:\inetpub\custerr中提供了56个错误页)



我希望它会有帮助!:)

您是否尝试过
Response.Status=“404.9 File attribute hidden”
?根据它判断,只需要一个“表示状态代码的三位数”,但我的建议是试试看。@Lankymart,是的,我已经测试过,但似乎不起作用。“生成”错误的唯一方法是尝试调用网站上的“test.yyy”文件。由于文件扩展名.yyy不是IIS MimeMap的一部分,静态文件处理程序将不会为其提供服务,然后返回404.3错误。这样,我可以测试我的自定义错误页面。在这种情况下,我不确定该建议什么,抱歉。IIS会记录子代码(您只需单击“IIS>ASP>Logging”图标,将此字段包含到日志文件中。如果您的服务器点击“500.0”,您将在行尾附近看到500 0。如果您的服务器点击“500.19”,您将在该行的末尾看到500 19。我配置了一个测试页面以返回“404.19错误的Droids”,并在日志中看到“404 0”。这是我回答的基础。我的回答也是基于我认为您正在测试的方式——使用某种ServerXMLHTTP组件或AJAX请求。好的,我更好地理解您的答案!您做出了“假设”在我测试的过程中…那…嗯…呃…不准确;)我测试的方法和你测试的方法一样:使用一个简单的.asp测试页面。您的日志显示404.0这一事实表明IIS删除了ASP代码发送的子代码,从而证实了经典ASP只能生成3位数错误的事实。谢谢!;)
<?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>