1

我正在处理我继承的一个大型站点,该站点混合了经典的 ASP、内联 ASP.NET 和编译的 ASP.NET,所有这些都#INCLUDE以某种形式使用标签。我一直在使用 IIS 并重写/重写地图,并且似乎找到了一个可行的解决方案来获取页面请求以重定向到新版本,因为我慢慢地将这个站点转换为可用的解决方案,但是任何被请求为的页面#INCLUDE(与用户直接请求相反)似乎不尊重重写或重写映射。如果我直接访问包含的页面,它会按预期重写,但访问嵌入 URL 的页面#INCLUDE不会。

我相当确定我理解为什么会发生这种情况(它没有被直接请求,所以重写/重定向不会发挥作用,只是像用户控件一样处理),所以有什么建议可以做到这一点吗?通常我会说只是修复使用包含指向新位置的文件,但是该站点有 4,221 个 Web 文件分散在数百个文件夹中,其中混合了超过 1MM 的图像。在混乱中搜索诸如文件名之类的字符串需要永远,所以我试图找到更高级别的东西来为我处理这个问题。

想法?

4

1 回答 1

1

正如您所说:#INCLUDE 不是 HTTP 请求,因此永远不会触及 URL 重写或其重写映射。包含过程由 ASP 解释器在内部执行。

您也许可以使用虚拟目录(取决于您的确切要求)来解决这个问题,因为 ASP 解释器可以包含虚拟目录中包含的文件。使用您共享的有限细节很难提出确切的解决方案。

于 2014-02-04T10:52:15.363 回答