首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 操作 IIS 建立應用程式集區時出現「無效索引」異常與解決方案

     編輯:關於C#

問題現象

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) 上不支援或索引無效,移除即可避免異常。

參考連結:原文出處

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved