【问题标题】:get server port from Application_Start从 Application_Start 获取服务器端口
【发布时间】:2012-08-13 03:10:02
【问题描述】:

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

我试图这样获取它:

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

但这会引发异常

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

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

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

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

    【讨论】:

    • 哈!实际上,我需要端口的原因是我可以强制请求在启动时发生,所以我可以做只能在 Application_BeginRequest 中发生的工作 :) 但是感谢您提供的信息!
    猜你喜欢
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 2012-02-10
    • 2011-06-17
    相关资源
    最近更新 更多