【问题标题】:MVC allow an IIS default page in subfolder without breaking parent routeMVC 允许子文件夹中的 IIS 默认页面而不破坏父路由
【发布时间】:2014-01-15 03:43:02
【问题描述】:

对于开发人员离开的应用程序,我需要绕过 MVC 路由 - 我们将完全替换它,但现在如果我可以绕过这条路由,它将为我们节省大量时间。

路由是(例如)www.this.site/path/subpath

由于它是在 IIS 上,我可以利用默认文档并创建以下文件夹/文件结构:/path/subpath/index.htm

但是,如果我这样做,我将“破坏”父 www.this.site/path 路由(它会抛出 403 - Forbidden: Access is denied),因为我现在有一个实际的文件夹,其中 /path/路线是。

有没有办法解决这个问题/让 IIS 在 /path/ 上遵循 MVC,但仍处理子 html 文件? 谢谢。同样,这并不是一个长期的解决方案,而是一种解决方法,直到我们可以完全替换该应用程序。

【问题讨论】:

  • 如果我通过创建 /path/web.config 允许在 IIS 端浏览目录,它仍然会破坏 /path/...的 MVC 路由...
  • 也许IIS URL Rewrite 带有临时重定向 302 到根级页面或真正的 MVC 页面。

标签: asp.net-mvc-3 iis-7.5


【解决方案1】:

也许更好的解决方法是使用 IIS AAR 模块,它在应用程序之外提供反向代理功能。

这样做:

a) 在它自己的站点上以正确的路径启动应用程序——所以它应该可以在 http://localhost:1234/path/subpath/index.htm 之类的地方运行

b) 安装 IIS AAR 模块并使用 WebPI 和 IIS 管理工具启用反向代理功能

c) 忽略应用中的 /path/subpath 路由

d) 为 IIS 添加 /path/subpath 的虚拟目录

e) 将其配置为返回到 localhost:1234 或您配置站点的任何端口

这将使旧版应用程序完全独立,同时保持面向公众的 URL 在世界其他地方看起来正确。

【讨论】:

  • 非常感谢 - 我认为这正是我需要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多