我在IIS7中有一些站點配置爲以域用戶身份運行(MYDOMAIN \ someuser)。Microsoft.Web.Administration.ServerManager無法讀取在applicationHost.config中包含加密密碼的配置節
我使用Microsoft.Web.Administration命名空間來掃描我的服務器配置,但它拋出一個異常時,我打這些「冒領」的網站之一:
using (ServerManager sm = new ServerManager()) {
foreach (Site site in sm.Sites) {
foreach (Application app in site.Applications.Reverse()) {
foreach (VirtualDirectory vdir in app.VirtualDirectories.Reverse()) {
var config = app.GetWebConfiguration();
foreach (var locationPath in config.GetLocationPaths()) {
// error occurs in GetLocationPaths()
}
}
}
}
}
實際的錯誤信息是:
COMException was unhandled
Filename: \\?\C:\Windows\system32\inetsrv\config\applicationHost.config
Line number: 279
Error: Failed to decrypt attribute 'password' because the keyset does not exist
看來,IIS被存儲的applicationHost.config加密的MYDOMAIN \ SomeUser的密碼,這是在安全性方面不錯 - 但我不知道如何讓ServerManager的解密此。
有關如何讓ServerManager解密這個或者告訴IIS以純文本存儲密碼的任何提示?順便說一句,這是在Windows 7 RC下的IIS7上。