I need to deploy a web application on several laptops (although it is a web application, it is intended to run via localhost only – thus the need to deploy on several different machines).
Normally I would go to IIS and right click a directory to create a web application, but I would very much like to automate this leg of the installation. Can it be done?
I want to use IIS, but I want to create the web application automatically without opening the IIS Microsoft Management Console (MMC).
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
I can suggest you to take a look at this link if you are deploying on IIS 6 or at this one if it is IIS 7 (I could recommend Mike Volodarsky’s blog for any information on IIS 7 in general).
It should be quite simple for you to write some batch file to automate a site creation.
Example:
- IIS6 : iisweb /create C:Rome “My Vacations” /d www.reskit.com /dontstart
- IIS7 : %windir%system32inetsrvAppCmd ADD SITE /name:MyNewSite /bindings:http/*:81: /physicalPath:c:inetpubmynewsite
Method 2
You’re really asking two different questions. First, why reinvent the wheel? In all likelihood, the laptops are already capable of running IIS – it’s available on all “modern” Windows versions with the possible exception of Vista Home. Second, a VS.NET installer can easily target and automate an install to IIS. If you use Wix or some other third party installer it will require more manual work but can still be done.
Edit: In re-reading your question, that sounds like what you’re really asking – you already knew IIS was available on the target computers, but just didn’t want to manually install on each computer. Correct? In that case, definitely look at the VS.NET setup project – they have a built-in target for IIS deployment.
Method 3
You can look inside the Cassini Sample Web Server (comes with source):
The ASP.NET Cassini Web Server Sample is a sample web server written using the Microsoft® .NET® Framework, and demonstrates hosting ASP.NET using the ASP.NET hosting APIs (System.Web.Hosting).
Method 4
You could use the system.DirectoryServices class e.g.
http://www.gafvert.info/iis/article/cs_create_website_iis6.htm
Method 5
To implement a minimal web server you can use HTTP.SYS (the core component of IIS deployed with Windows XP SP2 or higher). In .NET this can be done e.g. by using the HttpListener class in the System.Net namespace.
Method 6
You could also try Mono. It is for Linux, Mac OS X, and Windows.
They have xsp a web server for .NET applications.
There is documentation about that in ASP.NET | Mono.
Method 7
Create a new Visual Studio project of type “Setup and Deployment”, and use the “Web Setup” type.
This will create an .msi installer that will automatically create the web app for you within IIS.
You will then also get the ability to perform network installs, so if you have the right permissions you could manage this centrally.
Method 8
You can create a virtual directory without using the MMC console using the WebDirectoryCreate task available inside the project msbuildtasks
Method 9
Have look at this post. It explains how to start Cassini web server from the command line and add it as a shell extension.
CarlosAg’s blog has some great posts about IIS administration throw PowerShell and managed code.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0