Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
先日のこのブログの記事に掲載したサンプルコードの "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; } |
さて、前回からコードのサンプルを掲載していますが、うまく実行できましたでしょうか?
もしうまくいかない場合でも、後日、動作確認可能なサンプルアプリケーションをソースごとご提供しますので、もう少々お待ちください。