0
目標
更改IIS綁定和交換虛擬目錄在每個請求的基礎上。一個簡單的應用程序將使用Microsoft.Web.Administration
打開,替換和提交。以下是簡化流程:IIS使用Microsoft.Web.Administration和承諾更改
代碼
ServerManager = New ServerManager()
config = ServerManager.GetApplicationHostConfiguration()
SiteList = config.GetSection("system.applicationHost/sites")
SitesCollection = SiteList.GetCollection()
_site = SitesCollection.FirstOrDefault(Function(f) f.GetAttributeValue("name").ToString() = "XXX")
_bindings = _site.GetCollection("bindings")
_bind As ConfigurationElement = _bindings.CreateElement("binding")
_bind("protocol") = "http"
_bind("bindingInformation") = String.Format("*:80:{0}", "www.zzz.yyy")
_bindings.Add(_bind)
ServerManager.CommitChanges()
問題
這對管理員的代碼運行驗證網頁,呼叫前,該線程被模擬,以確保特權到位。我被允許閱讀.config但不寫!我還確認,在任何調用之前,線程以管理員身份運行。我也嘗試使用LocalService池,但是再次沒有運氣。
錯誤
Filename: \\?\C:\Windows\system32\inetsrv\config\applicationHost.config
Error: Cannot write configuration file due to insufficient permissions
hresult: 0x80070005
at Microsoft.Web.Administration.Interop.AppHostWritableAdminManager.CommitChanges()
線程模擬是無用的。 LocalService不是本地管理員。您必須以LocalSystem身份運行池。 –
嘗試了上述所有操作,包括使用LocalSystem身份池。 – fcm