簡體   English   中英

web.config多個配置源

[英]web.config Multiple config sources

我需要聲明多個配置源來重寫url,因為重寫列表很長(+10000次重寫)。

這不起作用:

  <rewrite>
    <rules configSource="App_Config\Rewrite\UrlRewrites1.config"></rules>
    <rules configSource="App_Config\Rewrite\UrlRewrites2.config"></rules>
  </rewrite>
</system.webServer>

除了以下例外:

配置部分“ system.webServer / rewrite / rules”已經定義。 每個配置文件中的節只能出現一次。

“ configSource”僅支持一個配置文件,因此默認情況下不能有多個配置文件。 這對於web.config中的節點是可行的。

我建議您嘗試以編程方式進行操作。您可以使用ServerManager類來訪問網站配置。 您可能需要添加對Microsoft.Web.Administration的引用。 閱讀您的配置文件並手動添加每個規則。

像這樣:

using (ServerManager serverManager = new ServerManager())
{
   Configuration config = serverManager.GetWebConfiguration("Default Web Site");
   ConfigurationSection rulesSection = config.GetSection("system.webServer/rewrite/rules");
   ConfigurationElementCollection rulesCollection = rulesSection.GetCollection();

   ConfigurationElement ruleElement = rulesCollection.CreateElement("rule");
   ruleElement["name"] = @"rule";

   ConfigurationElement matchElement = ruleElement.GetChildElement("match");
   matchElement["url"] = @"foo\.htm";

   ConfigurationElement actionElement = ruleElement.GetChildElement("action");
   actionElement["type"] = @"Rewrite";
   actionElement["url"] = @"bar.htm";
   rulesCollection.Add(ruleElement);

   serverManager.CommitChanges();

}

還有另一種選擇,但我自己還沒有嘗試過。 您可以為URL重寫模塊編寫自己的自定義重寫提供程序。 這是一個演練方法: 自定義重寫提供者演練

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM