解决大型RewriteMap配置部分

时间:2011-11-15 10:40:33

标签: asp.net xml 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>

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

2 个答案:

答案 0 :(得分:0)

我们坚持了很长时间,最终编写了自己的301重定向器。在sitecore中,它位于ItemResolver之后修补的管道中,该管道消耗了大文件(未包含在任何Web.configs中)。我们不能使用“ registry hack”选项,因为它是一个Azure Service App,并且没有(简单又便宜)对注册表的访问。

答案 1 :(得分:-2)

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

我已经解决了 - 很好的旧DOS方式:)

我有一个大的重写映射文件(50000+条记录),逻辑上(!)命名为Map部分。 我所做的是将每个地图存储在自己的文本文件中。 Map1.config Map2.config Map3.config

我有一个&#39; header.config&#39;其中包含两行

<rewrite>
    <rewriteMaps>

和footer.config有

</rewriteMaps>

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

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

COPY header.config + Map1.config + Map2.config + Map3.config + footer.config MySiteRewriteMaps.config

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

我现在正在开发一个自动脚本,将各种地图拉出到单个文件中(如果有人有太多地图并且需要使用此工具)。我会在几周内发送更新。

希望这有助于某人!