解决大型RewriteMap配置部分

Tim*_*Tim 7 xml asp.net web-config

有人知道你可以将一个大的(550KB)重写文件拆分成更小的部分吗?

我们遇到的问题是旧网站有数千个需要映射的网址,但由于250KB的限制我们无法映射它们.

我正在考虑以下方面的事情:

<rewrite>
    <rewriteMaps>
        <rewriteMap configSource="config\RewriteMaps.LargePart1.config" />
        <rewriteMap configSource="config\RewriteMaps.LargePart2.config" />
        <rewriteMap configSource="config\RewriteMaps.LargePart3.config" />
        <rewriteMap configSource="config\RewriteMaps.LargePartX.config" />
    </rewriteMaps>
</rewrite>
Run Code Online (Sandbox Code Playgroud)

但问题是,rewriteMap节点不是部分,所以不能使用configSource.有没有人想出一个优雅的解决方案呢?

小智 -2

我也遇到了这个问题,并四处寻找解决方案。IIS 模块中没有任何内容可以执行此操作(跨越多个文件的重写映射)

我已经解决了这个问题 - 良好的旧 DOS 方式:)

我有一个大型重写映射文件(50000 多条记录),其中包含逻辑(!)命名的映射部分。我所做的是将每个地图存储在其自己的文本文件中。地图1.配置 地图2.配置 地图3.配置

我有一个“header.config”,其中包含两行

<rewrite>
    <rewriteMaps>
Run Code Online (Sandbox Code Playgroud)

和 footer.config 有

</rewriteMaps>
Run Code Online (Sandbox Code Playgroud)

每个地图配置都以适当的命名开始 <rewriteMap name="Map name" defaultValue="">,包含我想要插入的所有重写,然后以标签结束</rewriteMap>

最后 - 为了生成完整的文件,我在 DOS 中使用 COPY 命令!我已经设置了一个批处理文件来生成这个GenerateRewriteConfig.bat,它基本上是这样做的

COPY header.config + Map1.config + Map2.config + Map3.config + footer.config MySiteRewriteMaps.config
Run Code Online (Sandbox Code Playgroud)

对于持续更新,我修改相关的 MAP 配置文件并运行GenerateRewriteConfig.bat!

我现在正在开发一个自动化脚本,将各种地图提取到单独的文件中(以防有人拥有太多地图并需要使用此工具)。我将在几周内发送更新。

希望这对某人有帮助!

  • 无法理解,如果结果 MySiteRewriteMaps.config 仍然超过最大文件大小,这个解决方案将有何帮助? (3认同)
  • 这并不能解决 IIS 处理时文件太大的根本问题 (2认同)