我需要能够在启动时获取 MVC 实例使用的 Web 端口,因为它可能会因站点而异。关于如何获取端口的大多数答案都涉及从请求对象获取端口,而该对象在 Application_Start 中不存在。还有其他方法可以获取吗?
我尝试像这样获取它:
HttpContext.Current.Request.ServerVariables["SERVER_PORT"]
但这会引发异常
"System.Web.HttpException (0x80004005): Request is not available in this context"
最佳答案
据我所知,在 IIS 7+ 中以集成管道模式托管时,无法在 Application_Start
中完成此操作。有一个解决方法,涉及使用 Application_BeginRequest
仅对第一个请求执行一次性应用程序初始化。查看以下答案:https://stackoverflow.com/a/4243338/29407 。这个答案的灵感来自 following blog post .
另一种可能性当然是重新思考为什么您需要知道 Application_Start
处的服务器端口以及您是否不能做其他事情。
关于asp.net-mvc - 从Application_Start获取服务器端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11992744/