获取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);
}