在我的 MVC3 应用程序中,我有一个自定义 Controller 工厂,它的 CreateController()
方法工作如下:
public IController CreateController(RequestContext requestContext, string controllerName)
{
string host = requestContext.HttpContext.Request.Headers["Host"];
if( !host.EndsWith( SomeHardcodedString ) ) { // FAILS HERE
//some special action
}
//proceed with controller creation
}
问题是 host
有时为 null - 我看到一些请求的 NullReferenceException
和异常堆栈跟踪点正好在该行。
为什么要在此处检索到 null
?我该如何处理这种情况?
最佳答案
使用string host = requestContext.HttpContext.Request.Url.Host;
关于c# - 为什么 HttpContext 不包含 "Host" header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8490004/