ASP.NET 虚拟路径映射到另一个不允许的应用程序

Posted

技术标签:

【中文标题】ASP.NET 虚拟路径映射到另一个不允许的应用程序【英文标题】:ASP.NET Virtual Path Maps To Another Application Which Is Not Allowed 【发布时间】:2013-10-17 03:01:33 【问题描述】:

我的网站在多台服务器上构建时没有任何问题。 但是,当我在同一台机器上将它从一个文件夹复制/移动到另一个文件夹时:我开始收到错误

虚拟路径映射到另一个不允许的应用程序。

我做错了什么?

【问题讨论】:

问题是什么? 您应该将答案分开并将其作为答案发布。 我在SVN中切换分支后也看到了这个;即使我重建了解决方案,我也不得不在 IIS 中重新启动网站。 【参考方案1】:

此问题的根源在于,当将 ASP.NET 网站复制到新文件夹时,与解决方案“虚拟路径”相关的属性设置设置为文件夹名称而不是根目录。解决方案是将虚拟路径设置从文件夹名称更改为“/”。

这可以通过右键单击项目并打开属性对话框找到:解决方案->属性->虚拟路径->更改为“/”

【讨论】:

【参考方案2】:

这不是你的错误发生的原因,但它可能对研究问题的人有用。

如果您的 Web 应用程序作为应用程序在另一个 IIS 站点中运行(通过 IIS 管理工具设置)并尝试通过 HttpResponse.Redirect 等方式访问另一个站点的资源,请确保该项目未设置在 Visual Studio 中使用单独的 IIS。如果是这样,它可能在与站点其他部分不同的 IIS 中启动。

【讨论】:

【参考方案3】:

附加检查:缺少 global.asax 也会导致同样的错误。

【讨论】:

【参考方案4】:

如果您正在创建一个新的 HttpContext 并调用任何外部 服务,它也会导致同样的错误。

关键是你不应该创建新的HttpContext,改变现有的 满足您的需求。

【讨论】:

以上是关于ASP.NET 虚拟路径映射到另一个不允许的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

映射一种 asp.net 应用程序

asp.net中Server.MapPath是啥意思?

ASP.NET MVC 4 (一)路径映射

ASP.NET MVC 4 (一)路径映射

如何将文件从 ASP.NET 上传到另一个 Web 应用程序

ASP.NET将文件写到另一服务器