次のコードを使用してアプリプールを作成します。
var metabasePath = string.Format(@"IIS://{0}/W3SVC/AppPools", serverName);
DirectoryEntry newpool;
DirectoryEntry apppools = new DirectoryEntry(metabasePath);
newpool = apppools.Children.Add(appPoolName, "IIsApplicationPool");
newpool.CommitChanges();
アプリプールで.NETFramework 4.0を使用するように指定するにはどうすればよいですか?
IIS7を使用しているタグからわかります。どうしても必要な場合を除いて、IIS6互換コンポーネントは使用しないでください。推奨されるアプローチは、 Microsoft.Web.Administration
マネージAPIを使用することです。
これを使用してアプリケーションプールを作成し、.NET Frameworkのバージョンを4.0に設定するには、次のようにします。
using Microsoft.Web.Administration;
...
using(ServerManager serverManager = new ServerManager())
{
ApplicationPool newPool = serverManager.ApplicationPools.Add("MyNewPool");
newPool.ManagedRuntimeVersion = "v4.0";
serverManager.CommitChanges();
}
Microsoft.Web.Administration.dll
への参照を追加する必要があります。これは次の場所にあります。
%SYSTEMROOT%\System32\InetSrv
newpool.Properties["ManagedRuntimeVersion"].Value = "v4.0";
Microsoft.Web.Administration.dllと同じことを行いますが、DirectoryEntryを使用します
また
newPool.InvokeSet("ManagedPipelineMode", new object[] { 0 });
DirectoryEntryを使用して、統合パイプラインモードまたは従来のパイプラインモードに切り替えます。
特定のシナリオでは他の回答の方が適していますが、一般に、appcmdツールを使用してこれを行うことができることに注意してください。 https://technet.Microsoft.com/en-us/library/cc731784%28v = ws.10%29.aspx 。具体的には:
appcmd add apppool /name: string /managedRuntimeVersion: string /managedPipelineMode: Integrated | Classic