2013-05-06 56 views
0

我使用了Web角色。 我只是想知道我的項目是否可以使用啓動腳本將管道模式更改爲經典模式。如何使用啓動腳本更改IIS應用程序池管道模式

我可以使用C#代碼實現,但我更喜歡使用cmd,我在這裏遇到的問題是如何通過cmd獲取applicationPool名稱? 這裏是我的C#代碼:

{ 
     using (ServerManager serverManager = new ServerManager()) 
     { 
      Site site = serverManager.Sites[RoleEnvironment.CurrentRoleInstance.Id + "_Web"]; 

       Configuration config = serverManager.GetApplicationHostConfiguration(); 
       string AppPoolName = site.Applications[0].ApplicationPoolName; 

       ConfigurationSection applicationPoolsSection = config.GetSection("system.applicationHost/applicationPools"); 

       ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection(); 

       ConfigurationElement addElement = FindElement(applicationPoolsCollection, "add", "name", AppPoolName); 
       if (addElement == null) throw new InvalidOperationException("Element not found!"); 

       addElement["managedPipelineMode"] = @"Classic"; 

       serverManager.CommitChanges(); 



      return base.OnStart(); 
     } 
    } 

    private static ConfigurationElement FindElement(ConfigurationElementCollection collection, string elementTagName, params string[] keyValues) 
    { 
     foreach (ConfigurationElement element in collection) 
     { 
      if (String.Equals(element.ElementTagName, elementTagName, StringComparison.OrdinalIgnoreCase)) 
      { 
       bool matches = true; 

       for (int i = 0; i < keyValues.Length; i += 2) 
       { 
        object o = element.GetAttributeValue(keyValues[i]); 
        string value = null; 
        if (o != null) 
        { 
         value = o.ToString(); 
        } 

        if (!String.Equals(value, keyValues[i + 1], StringComparison.OrdinalIgnoreCase)) 
        { 
         matches = false; 
         break; 
        } 
       } 
       if (matches) 
       { 
        return element; 
       } 
      } 
     } 
     return null; 
    } 

} 

所以,我怎麼能這樣做?

回答

0

如果池的名字就是你所面臨的唯一問題,請嘗試使用appcmd用於列出所有可用池:

appcmd.exe list apppool /text:* 

這應該給你的IIS所有可用apppools與應用程序名稱(前提是你有足夠的權利)。

相關問題