从Application_Start获取服务器端口

时间:2012-08-16 17:49:10

标签: asp.net-mvc

我需要能够在启动时获取我的MVC实例正在使用的Web端口,因为它可能会在站点之间发生变化。如何获取端口的大多数答案都涉及从请求对象中获取它,这在Application_Start中是不存在的。还有其他方法可以获取它吗?

我试图像这样获取它:

HttpContext.Current.Request.ServerVariables["SERVER_PORT"] 

但是这会引发异常

“System.Web.HttpException(0x80004005):请求在此上下文中不可用”

1 个答案:

答案 0 :(得分:2)

AFAIK在IIS 7+中以集成管道模式托管时,无法在Application_Start中完成此操作。虽然涉及使用Application_BeginRequest仅在第一个请求上执行一次应用程序初始化,但仍有一种解决方法。查看以下答案:https://stackoverflow.com/a/4243338/29407。这个答案来自following blog post

另一种可能性当然是重新考虑为什么你需要知道Application_Start的服务器端口,以及你是否不能做其他事情。