C# 程式操作 IIS 建立應用程式集區時拋出異常:無效索引(Exception from HRESULT: 0x80070585)。
public static string CreateAppPool(string appPoolName, string frameworkVersion, string managedPipelineMode) {
DirectoryEntry rootfolder = new DirectoryEntry("IIS://localhost/W3SVC/APPPOOLS");
try {
DirectoryEntry appPool = rootfolder.Children.Add(appPoolName, "IIsApplicationPool");
if (appPool.Properties.Contains("AppPoolCommand")) {
appPool.Properties["AppPoolCommand"][0] = "1";
}
if (appPool.Properties.Contains("ManagedRuntimeVersion")) {
appPool.Properties["ManagedRuntimeVersion"][0] = "v4.0";
}
// 以下代碼在 Windows Server 2008 (版本 6.0) 會出現異常:
// 無效索引 (Exception from HRESULT:0x80070585)
// if (appPool.Properties.Contains("AppPoolIdentityType")) {
// appPool.Properties["AppPoolIdentityType"][0] = "4";
// }
if (appPool.Properties.Contains("Enable32BitAppOnWin64")) {
appPool.Properties["Enable32BitAppOnWin64"][0] = true;
}
appPool.CommitChanges();
return null;
}
catch (System.Exception ex) {
LogToFile.Save(ex, "CreateAppPool");
return ex.Message;
}
}
將導致異常的 AppPoolIdentityType 相關代碼註解後,未見對 Web 應用程式造成任何影響。此屬性在 Windows Server 2008 (IIS 7.0) 上不支援或索引無效,移除即可避免異常。
參考連結:原文出處