Asp.net 如何在内容处理程序中设置HttpResponse StatusDescription?

Asp.net 如何在内容处理程序中设置HttpResponse StatusDescription?,asp.net,iis,generic-handler,Asp.net,Iis,Generic Handler,我试图在HTTP响应中设置自定义HTTP状态头。例如: 400 Why do you want to do that 我是通过在IHttpHandler中设置HttpResponse的StatusDescription来实现的 <%@ WebHandler Language="C#" Class="Foo" %> using System; using System.Web; public class Foo : IHttpHandler { public void

我试图在HTTP响应中设置自定义HTTP状态头。例如:

400 Why do you want to do that
我是通过在
IHttpHandler
中设置
HttpResponse
StatusDescription
来实现的

<%@ WebHandler Language="C#" Class="Foo" %>

using System;
using System.Web;

public class Foo : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        context.Response.StatusCode = (int)System.Net.HttpStatusCode.BadRequest;
        context.Response.StatusDescription = "Why do you want to do that";

            //Unnecessary; the string already contains this
        context.Response.Status = "400 Why do you want to do that";

        context.Response.ContentType = "text/plain";
        context.Response.Write("Hello World");
    }

    public bool IsReusable { get { return false; } }
}

在通用处理程序中,如何更改
HttpResponse
头的
StatusDescription

花言巧语 有三个属性:

  • int StatusCode
    400
  • 字符串状态描述
    错误请求
  • 字符串状态
    400错误请求
设置
StatusCode
将改变
StatusDescription
Status

                    StatuCode  StatusDescription  Status              
==================  =========  =================  ====================
initial             200        OK                 200 OK
StatusCode=400;
                    400        Bad Request        400 Bad Request
StatusDescription = "Too much want";
                    400        Too much want      400 Too much want
它的工作方式也是相反的:

                    StatuCode  StatusDescription  Status              
==================  =========  =================  ====================
initial             200        OK                 200 OK
StatusDescription="Brilliant";
                    200        Brilliant          200 Brilliant
StatusCode=451;
                    451        Brilliant          451 Brilliant
另一方面

                    StatuCode  StatusDescription  Status              
==================  =========  =================  ====================
initial             200        OK                 200 OK
Status="451 Brilliant"
                    451        Brilliant          451 Brilliant
花言巧语 发件人:

6.1.1状态代码和原因短语

下面给出了为HTTP/1.1定义的数字状态代码的各个值以及相应原因短语的示例集。这里列出的原因短语只是建议——它们可以被本地等价物替换,而不会影响协议

                    StatuCode  StatusDescription  Status              
==================  =========  =================  ====================
initial             200        OK                 200 OK
Status="451 Brilliant"
                    451        Brilliant          451 Brilliant