如何在 MVC3 应用程序的 OnApplicationStarted 中获取应用程序根目录(完整物理路径)?

Posted

技术标签:

【中文标题】如何在 MVC3 应用程序的 OnApplicationStarted 中获取应用程序根目录(完整物理路径)?【英文标题】:How to get application root (full physical path) in OnApplicationStarted in MVC3 application? 【发布时间】:2013-05-03 12:13:02 【问题描述】:

直到现在我都用过:

Dim appPath = HttpContext.Current.Request.MapPath(HttpContext.Current.Request.ApplicationPath)

但是今天我将我的应用程序从 IIS6 移动到 IIS7 并且我得到“请求在此上下文中不可用”异常。这是由于 IIS7 中的集成模式管道。我不想进入经典模式,所以我正在寻找另一种获取应用程序路径的方式(即“C:\SVN\L2E\trunk\Website”)。

有没有人知道如何获得我的 MVC3 应用程序的完整物理路径?

【问题讨论】:

【参考方案1】:

您可以使用System.Web.HttpRuntime.AppDomainAppVirtualPath 获取虚拟路径并调用System.Web.Hosting.HostingEnvironment.MapPath 将虚拟路径映射到物理路径。

【讨论】:

谢谢,工作正常:)。奇怪我自己找不到【参考方案2】:

使用这个:

 AppDomain.CurrentDomain.BaseDirectory 

【讨论】:

以上是关于如何在 MVC3 应用程序的 OnApplicationStarted 中获取应用程序根目录(完整物理路径)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有模型的情况下验证 MVC3 中的强类型视图

如何在 MVC3 中向页面 url 添加“文本 slug”?

如何在 Index.cshtml MVC3 上显示两个 Partials 视图数据?

如何加载在 asp.net mvc3 上开发的测试 Web 应用程序?

如何在 MVC3 中使用 https 生成绝对 URL?

如何在 ASP.NET MVC3 中通过 HTTPS 提供静态文件(在 ~/Content 中)