[英]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.