2

我需要能够在启动时获取我的 MVC 实例使用的 Web 端口,因为它可能会因站点而异。大多数关于如何获取端口的答案都涉及从请求对象中获取它,该对象在 Application_Start 中不存在。有没有其他方法可以获取?

我试图这样获取它:

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

但这会引发异常

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

4

1 回答 1

3

Application_StartAFAIK在 IIS 7+ 中以集成管道模式托管时无法做到这一点。有一种解决方法,尽管涉及Application_BeginRequest仅在第一个请求上使用一次应用程序初始化。查看以下答案:https ://stackoverflow.com/a/4243338/29407 。此答案的灵感来自以下博客文章

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

于 2012-08-16T17:59:49.320 回答