Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取asp.net页中带有破折号的响应的头值_.net_Asp.net Mvc_Http Headers - Fatal编程技术网

获取asp.net页中带有破折号的响应的头值

获取asp.net页中带有破折号的响应的头值,.net,asp.net-mvc,http-headers,.net,Asp.net Mvc,Http Headers,我知道这很容易,但我不能让它工作。我在下面有一个响应标题 X-Exposure-Server:EastUS2 我就这样吐出来 <span>@Response.Headers["X-Exposure-Server"]</span> 如果您正在向响应添加自定义标题,则它是可用的。只需在quick watch中检查response.Headers的值。尝试了您的方案。我添加了我的响应标题response.AddHeader(“myheader”,“myheadervalue

我知道这很容易,但我不能让它工作。我在下面有一个响应标题

X-Exposure-Server:EastUS2
我就这样吐出来

<span>@Response.Headers["X-Exposure-Server"]</span>

如果您正在向响应添加自定义标题,则它是可用的。只需在quick watch中检查response.Headers的值。尝试了您的方案。我添加了我的响应标题response.AddHeader(“myheader”,“myheadervalue”);并尝试在视图中使用它,如-@Response.Headers[“myheader”],它显示值。仅显示mvc添加的标题。

只有通过代码设置才能访问该键。因此,请检查此方法 创建一个继承IHttpModule的类并实现它

public class HTTPHeaderModule : IHttpModule
{
    public void Dispose()
    {

    }

    public void Init(HttpApplication context)
    {
        context.EndRequest += new EventHandler(context_EndRequest);
    }

    void context_EndRequest(object sender, EventArgs e)
    {
        HttpResponse response = HttpContext.Current.Response;

        response.AddHeader("X-Exposure-Server","EastUS2e");
        //You can read this(EastUS2e) value from web.config
    }
}
现在在HttpModule部分的web.config中添加一行:

<httpModules>
    <add name="HTTPHeaderModule" , type="HTTPHeaderModule" />
 </httpModules>


我实现这一点的唯一方法是在BeginRequest中设置它,EndRequest是在页面呈现之后设置的

protected void Application_BeginRequest()
        {
            HttpContext.Current.Response.AddHeader("X-Exposure-Server", Config.Settings.ServerRegion);
        }

此X-Exposure-Server响应头是IIS默认添加的吗?只有标准响应头可以返回(默认),而这不是其中之一。chk此链接-msdn.microsoft.com/en-us/library/ms537417(v=vs.85)。aspx;IIS可以返回以X-*开头的4response标头,但您得到的不是其中之一。那么IIS是如何返回您提到的标头的呢?它不是默认添加的,是我添加的。如果您添加任何自定义标头,您可以如上所述进行阅读。您是如何添加此标头的?通过代码还是通过IIS设置?当然是通过IIS。我将其添加为自定义头,以便在负载平衡时通过服务器知道请求来自何处。但是,上面的代码表示其为空???响应中不存在密钥。Headers.Added one solution.pls check it
protected void Application_BeginRequest()
        {
            HttpContext.Current.Response.AddHeader("X-Exposure-Server", Config.Settings.ServerRegion);
        }