IIS 6.0+ 使用 `MetaBase.xml` 儲存設定。直接修改 XML 可建立網站並指定 ASP.NET 版本,但**需停止 IIS 服務**,影響現有網站,操作複雜、不直觀。
var root = new DirectoryEntry("IIS://localhost/W3SVC");
int siteId = 1;
foreach (DirectoryEntry e in root.Children)
if (e.SchemaClassName == "IISWebServer")
siteId = Math.Max(siteId, int.Parse(e.Name) + 1);
// 停止服務...
var configPath = Environment.SystemDirectory + @"\inetsrv\MetaBase.xml";
var doc = new XmlDocument(); doc.Load(configPath);
var xnm = new XmlNamespaceManager(doc.NameTable);
xnm.AddNamespace("mxh", "urn:microsoft-catalog:XML_Metabase_V64_0");
// 定位最後節點、建立新節點、設定屬性、ScriptMaps 硬編碼...
doc.Save(configPath);
// 重啟服務...
現代方案:使用 `Microsoft.Web.Administration` (ServerManager API) 或 PowerShell `New-Website`/`Set-WebConfigurationProperty`,支援線上變更、強型別、版本無關。