我有一个在多台服务器上构建没有任何问题的网站。
但是,当我在同一台机器上将它从一个文件夹复制/移动到另一个文件夹时:我开始收到错误消息
虚拟路径映射到另一个不允许的应用程序。
我究竟做错了什么?
此问题的根源在于,当将 ASP.NET 网站复制到新文件夹时,与解决方案“虚拟路径”相关的属性设置被设置为文件夹名称而不是根目录。解决方案是将虚拟路径设置从文件夹名称更改为“/”。
这可以通过右键单击项目并打开属性对话框来找到:解决方案->属性->虚拟路径->更改为“/”
这不是您发生错误的原因,但它可能对研究问题的人有用。
如果您的 Web 应用程序作为另一个 IIS 站点中的应用程序运行(通过 IIS 管理工具设置)并尝试通过 HttpResponse.Redirect 等方式访问其他站点的资源,请确保项目未设置为使用在 Visual Studio 中单独的 IIS。如果是,它可能在与站点其他部分不同的 IIS 内启动。
附加检查:缺少 global.asax 也会导致相同的错误。
如果您正在创建一个新的 HttpContext 并调用任何外部服务,它也会导致相同的错误。
关键是您不应该创建新的 HttpContext,而是根据您的需要更改现有的上下文。