asp.net-mvc - 从Application_Start获取服务器端口

标签 asp.net-mvc

我需要能够在启动时获取 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/

相关文章:

asp.net-mvc - 减少 AngularJS 提供程序中的依赖关系

c# - 对于路由代码中指定的 Controller /方法来说,使用 "specifications"是不是很糟糕?

c# - ASP.Net Controller Action 仅在任务完成后返回

asp.net - View 中对象或输出的缓存 : Which is better?

asp.net-mvc - 在 ASP.NET MVC 中执行原始 SQL 查询,数据库优先模型

c# - ASP.NET MVC EPPlus 下载 Excel 文件

asp.net-mvc - 使用 MVC 和 WebAPI 避免 Resharper <location> web.config 警告

c# - FileLoadException 未被用户代码处理

c# - 使用 mvc 身份注册电话号码而不是电子邮件

asp.net - 数据注释构造函数注入(inject)