在使用C#操作IIS創建應用程序池出現異常:無效索引(Exception from HRESULT:0x80070585)
相關代碼:
[csharp]
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";
}
//以下代碼在WindowsServer2008版本為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;
}
}
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";
}
//以下代碼在WindowsServer2008版本為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;
}
}
將相關代碼注釋以後,未見對Web應用程序帶來任何影響。