无法映射路径“/”。.net 4.0

20

我有一个.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内置的Web服务器运行,那么你是否以管理员身份运行VS? - TheCloudlessSky
你最终找到了 Lookups 类的源代码吗? - TheCloudlessSky
是的。我实际上将其引用为dll。我删除了dll,现在不再出现这个错误(尽管我会遇到其他一些错误,但那是另一个问题)。不过,我会发布代码... - kralco626
当前的HttpContext是否符合您的预期? - Will Dean
@Will - 老实说,我不知道,我没有编写查找组件。 - kralco626
显示剩余3条评论
4个回答

49

我知道这是一个老问题,但是如果你正在运行IIS,那么在控制台中输入iisreset可能会有助于解决“无法映射路径'/'”的问题。我在将IIS中的站点重命名后遇到了这个问题。


谢谢!我刚刚升级了一个.NET应用程序,尽管我已经尝试重新启动站点,但iisreset起了作用。 - ColinM
我没想到这会有帮助,因为我已经重置了应用程序池,但感谢您,这完全解决了我的问题。 - workabyte
谢谢,Tymek。你救了我的晚上 :) - HenningK
1
非常好!同样的情况 - 重命名了一个站点,然后开始出现这个问题。进行了iisreset立即解决了它。谢谢 :) - TheLostBrain
这对我解决了问题。您还可以从IIS服务器管理器中“重新启动”或“停止”和“启动”IIS。感谢分享。 - Damian C

12

我只是在尝试按照 Microsoft Step By Step 书籍中的练习,但当尝试对 ASP.NET 应用程序进行预编译时,遇到了这个问题。

以下是我解决问题的方法 - 花了我一天时间才找到!

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

当我尝试以这种方式运行 aspnet_compiler -v DeployThis C:\DeployThis -f -u 时,这就是我所需要的。


5
尝试使用System.Web.HttpContext.Current.Server.MapPath("~/")。注意~符号。

4
我们遇到了同样的问题,IISRESET没有解决。事实证明,我们尝试映射的虚拟目录在命名时有双反斜杠(d:\folder\\subfolder\)(使用PowerShell脚本创建了IIS虚拟目录)。 移除额外的反斜杠使HostingEnvironment.MapPath停止抛出异常。
为了帮助其他人,请注意 :-)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接