Let's say you have an existing IIS site and want to add an application to it. Usually you open up the Internet Information Services (IIS) Manager and do it there using the context menu.
But now assume - and that was in my case - you have multiple servers hosting the same site (behind a load balancer). Depending of the number of servers this is going to take a while, is not really exciting and maybe error prone.
I thought there should be a better solution - and yes, there is one, the command line tool for managing IIS - see https://docs.microsoft.com/en-us/iis/get-started/getting-started-with-iis/getting-started-with-appcmdexe
So I've created a batch file (.bat) which creates an application pool, sets the recycling option, creates an app inside of an existing site and then sets the application pool on the new app:
@ECHO OFF
ECHO # CREATE APP POOL
%systemroot%\system32\inetsrv\appcmd add apppool /name:app1 /managedRuntimeVersion:"v4.0" /managedPipelineMode:"Integrated"
ECHO # SET APP POOL RECYCLING
%systemroot%\system32\inetsrv\appcmd clear config -section:system.applicationHost/applicationPools /[name='app1'].recycling.periodicRestart.schedule
%systemroot%\system32\inetsrv\appcmd set config -section:system.applicationHost/applicationPools /+[name='app1'].recycling.periodicRestart.schedule.[@0,value='03:00:00'] /commit:apphost
%systemroot%\system32\inetsrv\appcmd set config -section:system.applicationHost/applicationPools /[name='app1'].recycling.periodicRestart.time:00:00:00 /commit:apphost
ECHO # CREATE APP
MD D:\@Work\DEV\IIS\example-site\app1
%systemroot%\system32\inetsrv\appcmd add app /site.name:example-site /path:/app1 /physicalPath:D:\@Work\DEV\IIS\example-site\app1
ECHO # SET APP POOL FOR APP
%systemroot%\system32\inetsrv\appcmd set app "example-site/app1" /applicationPool:app1
I run it - and checked the result via IIS manager - and as expected everything was setup correctly. Here are the screenshots:
Top comments (0)