【问题标题】:Failed to map the path '/'. .net 4.0无法映射路径“/”。 .net 4.0
【发布时间】:2011-04-01 12:41:14
【问题描述】:

我有一个 .net 应用程序,我刚刚在 Visual Studio 2010 中打开它并在启动时询问我时转换为 4.0。我去尝试建立网站,我得到这个错误:

Failed to map the path '/'.

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 

[InvalidOperationException: Failed to map the path '/'.]
   System.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath virtualPath, Boolean permitNull) +8804446
   System.Web.Hosting.HostingEnvironment.MapPathInternal(VirtualPath virtualPath) +42
   System.Web.VirtualPath.MapPathInternal() +4
   System.Web.HttpRequest.MapPath(VirtualPath virtualPath, VirtualPath baseVirtualDir, Boolean allowCrossAppMapping) +107
   System.Web.HttpRequest.MapPath(VirtualPath virtualPath) +37
   System.Web.HttpServerUtility.MapPath(String path) +99
   NU.WorkManagement.Lookup.Lookups..ctor() +82
   NU.WorkManagement.Engine.GlobalModule.Init(HttpApplication application) +624
   System.Web.HttpApplication.InitModulesCommon() +80
   System.Web.HttpApplication.InitModules() +43
   System.Web.HttpApplication.InitInternal(HttpContext context, HttpApplicationState state, MethodInfo[] handlers) +828
   System.Web.HttpApplicationFactory.GetNormalApplicationInstance(HttpContext context) +304
   System.Web.HttpApplicationFactory.GetApplicationInstance(HttpContext context) +107
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +327

我尝试了我在 google 上找到的最流行的解决方案(将和 ../ 替换为 ~/ 但没有任何...)

更新:

查找构造函数:

public Lookups()
{           
    _dirPath = System.Web.HttpContext.Current.Server.MapPath("/") + _xmlPath;           
}

【问题讨论】:

  • 您有默认的文档设置吗?你设置好路线了吗?
  • 你能发布Lookups类的构造函数吗?映射显然有问题。你在哪个网络服务器上运行它?这是在虚拟目录下吗?如果你使用内置的 web 服务器运行 VS,你是在以管理员身份运行 VS 吗?
  • 我正在使用内置的 Web 服务器运行 VS,是的,我正在以管理员身份运行。我想我会回答这两个问题我会去查找查找类。
  • 我不知道默认文档设置是什么,或者路由...
  • 你找到Lookups类的源了吗?

标签: c# asp.net .net iis


【解决方案1】:

我知道这是个老问题,但是记录一下,如果你是针对 IIS 运行的,那么

控制台中的“iisreset”可能有助于解决“无法映射路径'/'”。问题。在 IIS 中重命名站点后,我遇到了这个问题。

【讨论】:

  • 谢谢!我刚刚升级了一个 .NET 应用程序,并且 iisreset 成功了,即使我已经尝试过重新启动站点..
  • 不认为这会有所帮助,因为我确实重置了应用程序池,但是欢呼,这也完全解决了我的问题
  • 谢谢,Tymek。拯救了我的夜晚:)
  • 非常好!同样的情况 - 重命名一个网站,然后开始遇到这个问题。 iisreset 立即修复了它。谢谢:)
  • 这为我解决了。您还可以从 IIS 服务器管理器“重新启动”或“停止”和“启动”IIS。感谢分享
【解决方案2】:

我只是想通过 Microsoft Step By Step 书中的练习,在尝试预编译 ASP.NET 应用程序时遇到了这个问题。

这就是我克服这个问题的方法 - 我花了一天的时间才弄清楚!

当您打开 Visual Studio 命令提示符进行构建/预编译时,您必须右键单击并选择“以管理员身份运行”。

这就是我在尝试运行这个 aspnet_compiler -v DeployThis C:\DeployThis -f -u 时所做的一切

【讨论】:

    【解决方案3】:

    试试System.Web.HttpContext.Current.Server.MapPath("~/")。注意~

    【讨论】:

      【解决方案4】:

      我们遇到了同样的问题,IISRESET 没有这样做。 事实证明,我们尝试映射的虚拟目录在命名中有一个双反斜杠(d:\folder\\subfolder\)(IIS 虚拟目录是使用 powershell 脚本创建的)。删除额外的反斜杠使 HostingEnvironment.MapPath 停止抛出异常。

      以防万一这可以帮助某人:-)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多