c# - Crear un grupo de aplicaciones que use.NET 4.0
iis-7 directoryservices (3)
Las otras respuestas son mejores en su situación particular, pero en general tenga en cuenta que puede usar la herramienta appcmd para hacer esto: https://technet.microsoft.com/en-us/library/cc731784%28v=ws.10%29.aspx . Específicamente:
appcmd add apppool /name: string /managedRuntimeVersion: string /managedPipelineMode: Integrated | Classic
Utilizo el siguiente código para crear un grupo de aplicaciones:
var metabasePath = string.Format(@"IIS://{0}/W3SVC/AppPools", serverName);
DirectoryEntry newpool;
DirectoryEntry apppools = new DirectoryEntry(metabasePath);
newpool = apppools.Children.Add(appPoolName, "IIsApplicationPool");
newpool.CommitChanges();
¿Cómo especifico que el grupo de aplicaciones debe usar .NET Framework 4.0?
Veo en las etiquetas que estás usando IIS7. A menos que sea absolutamente necesario, no utilice los componentes de compatibilidad de IIS6. Su enfoque preferido debería ser utilizar la API administrada de Microsoft.Web.Administration
.
Para crear un grupo de aplicaciones usando esto y establecer la versión de .NET Framework en 4.0, haga esto:
using Microsoft.Web.Administration;
...
using(ServerManager serverManager = new ServerManager())
{
ApplicationPool newPool = serverManager.ApplicationPools.Add("MyNewPool");
newPool.ManagedRuntimeVersion = "v4.0";
serverManager.CommitChanges();
}
Debe agregar una referencia a Microsoft.Web.Administration.dll
que se puede encontrar en:
%SYSTEMROOT%/System32/InetSrv
newpool.Properties["ManagedRuntimeVersion"].Value = "v4.0";
Hará lo mismo que Microsoft.Web.Administration.dll pero utilizando DirectoryEntry
también
newPool.InvokeSet("ManagedPipelineMode", new object[] { 0 });
Cambiará al modo de canalización integrado o clásico utilizando DirectoryEntry.