繁体   English   中英

IIS7覆盖定义的HTTP标头值

[英]IIS7 overwriting defined HTTP header values

我正在尝试将asp.net .ashx文件的内容类型设置为text/plain

当我通过ASP.NET开发服务器运行此文件时,正确设置了内容类型。 但是,当我通过IIS7提供服务时,内容类型(以及我设置的任何其他标头值)不会通过(它作为text/html来传递)。

在IIS管理器的HTTP响应标头部分中设置的唯一值是X-Powered-By属性。 我尝试在此处设置内容类型,但这没有用。 但是,如果我删除了X-Powered-By属性,则会将其从标题中删除。

有任何想法吗?

.ashx文件中的代码

public class Queries1 : IHttpHandler, System.Web.SessionState.IReadOnlySessionState
{
    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        context.Response.Write("hello");
    }

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

IIS7的HTTP标头(通过python脚本拉出):

[('content-length', '58'), 
('x-powered-by', 'ASP.NET'), 
('server', 'Microsoft-IIS/7.0'), 
('date', 'Thu, 21 Oct 2010 15:51:28 GMT'), 
('content-type', 'text/html'), 
('www-authenticate', 'Negotiate, NTLM')]

要添加HTTP标头,您需要使用:

context.Response.Headers.Add("MyHeader", "Hello World!");

根据编码大猩猩的说明,您确定要浏览正确的URL吗? 如果我尝试使用与您编写的完全相同的代码,则在Fiddler中会看到以下内容:

HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/plain; charset=utf-8
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
Date: Thu, 21 Oct 2010 20:11:44 GMT
Content-Length: 5

hello

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM