Partager via


作ろう!!アプリケーションプール

先日のこのブログの記事に掲載したサンプルコードの "Web サイトの作成" のコメントに "(アプリケーションプールは自動生成される)" とありますが、すみません、これはコメントミスで、実際は自動生成されません。

Web サイトを単純に作成した場合は、規定の設定が継承され、DefaultAppPool が設定されます。

作成する Web サイト、あるいは既存の Web サイトに任意のアプリケーションプールを設定するには、あらかじめアプリケーションプールを作成しておき、それを設定するようにします。

というわけで、アプリケーションプールを作成するためのサンプルーコードは以下です。2 つメソッドが定義されていますが、どちらを使っても OK ですので用途に合わせてお使いください。

サンプル(C#) : アプリケーションプールの作成

//アプリケーションプールの作成:其の壱public Exception CreateApplicationPool(string poolName, bool autoStart, string modeType){    Exception returnExp = null;    try    {        using (ServerManager serverManager = new ServerManager())        {            Configuration config = serverManager.GetApplicationHostConfiguration();            ConfigurationSection applicationPoolsSection = config.GetSection("system.applicationHost/applicationPools");            ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection();            ConfigurationElement addElement = applicationPoolsCollection.CreateElement("add");            addElement["name"] = poolName;            addElement["autoStart"] = autoStart;            addElement["managedPipelineMode"] = modeType;            applicationPoolsCollection.Add(addElement);            serverManager.CommitChanges();        }    }    catch (Exception exp)    {        returnExp = exp;    }

    return returnExp; }

//アプリケーションプールの作成:其の弐public Exception CreateApplicationPool(string poolName, bool autoStart, ManagedPipelineMode modeType, ProcessModelIdentityType identityType){    Exception returnExp = null;    try    {        using (ServerManager serverManager = new ServerManager())        {            serverManager.ApplicationPools.Add(poolName);            ApplicationPool appPool = serverManager.ApplicationPools[poolName];            appPool.AutoStart = autoStart;            appPool.ManagedPipelineMode = modeType;            appPool.ProcessModel.IdentityType = identityType;            serverManager.CommitChanges();          }    } catch (Exception exp) {        returnExp = exp; }

    return returnExp;}

サンプル(C#) : アプリケーションプールを作成するメソッドの呼び出し方

"其の壱"の場合 (引数: プール名, 自動的に開始するか否か,プールの動作モード) Exception exp = CreateApplicationPool("myAppPool", true, "Integrated");

"其の弐"の場合 (引数:プール名, 自動的に開始するか否か,プールの動作モード,プールの動作アカウント種別) using Microsoft.Web.Administration;Exception exp = CreateApplicationPool("myAppPool", true,  ManagedPipelineMode.Integrated,ProcessModelIdentityType.ApplicationPoolIdentity);

Web サイトのアプリケーションに任意のアプリケーションプールを割り当てるメソッドのサンプルは以下の通りです。呼び出す際には、第一引数に サイト名, 第二引数に アプリケーションプール名を指定します。

このメソッドは、既存の Web サイトのアプリケーションプールの置き換えにも使用できます。

サンプル(C#):Web サイトへのアプリケーションプールの適用

//Web サイトに任意のアプリケーションプールを設定するpublic Exception ChangeApplicationPool(string siteName, string AppPoolName){    Exception returnExp = null;    try     {       ServerManager serverManager = new ServerManager();           serverManager.Sites[siteName].Applications[0].ApplicationPoolName = AppPoolName;           serverManager.CommitChanges();      }      catch(Exception exp)       {           returnExp = exp;       }      return returnExp; } 

さて、前回からコードのサンプルを掲載していますが、うまく実行できましたでしょうか?

もしうまくいかない場合でも、後日、動作確認可能なサンプルアプリケーションをソースごとご提供しますので、もう少々お待ちください。

 

Real Time Analytics

Clicky