Seeking Advice on Deploying MVC Web Application (VS 2012) RRS feed

  • Question

  • User1076542663 posted


    I have a large ASP.Net MVC Web application. I also have a simple installer which is pretty much a console app that does basic thing like:

    • Create/Configure IIS web site
    • Configure a third-party application that this app talks to (this step is important; without it the app will not function properly). It is a set of C# functions that talk to a web service and perform necessary steps.

    So let's say I wanted to give the application to someone else to install in their environment (a customer, for instance, or a demo version).  What is the best approach to deployment here?  I have heard of various methods, like Web Deploy, for example (http://www.iis.net/downloads/microsoft/web-deploy) but not sure of the best approach since I haven't dealt with something like this before: not publishing the app to a server as a developer, but rather giving the entire package to someone else to install on their web server. 

    What about Windows Installer package, is that an option?
    I assume ClickOnce is not a option since this is a web application?

    Whatever the solution ends up being, it must:

    1. Copy/un-package web app bits in the target environment (web server);
    2. Set up IIS (create web site/app pool/set port, etc);
    3. Run custom code to configure a third-party app already installed in target environment (does Web Deploy tool allow for something like this?);
    4. There needs to be an ability to provide UI to the end-user (like a Win Form) to pick setting for step #3 above.
    5. Possibly some custom assemblies will need to be installed in GAC, but I assume that can be done as part of running custom code in #3?

    Much appreciate the help!

    Monday, October 14, 2013 6:29 PM

All replies

  • User-1454326058 posted

    Hi Rockmus,

    Thanks for your post!

    According to your description, in my opinion, I think we could add a customer action to do something that we want in the VS2010. For more information, please refer to http://msdn.microsoft.com/en-us/library/5k10s063(v=vs.100).aspx

    For VS2012, as far as I know, the website should be already created in the IIS when deploy the project. (By default there is a Default Web Site and the port is 80)

    I don't familar with InstallShield Limited Edition.

    Here are some links that may benefit you:




    Best Regards

    Wednesday, October 16, 2013 5:14 AM
  • User1076542663 posted

    Hi Starain,

    Thank you for the reply!  I am using VS 2012, so I am afraid that the Web Setup project with custom actions is not available as, in my understanding, it was replaced by InstallShield LE in VS 2012.  Am I correct?

    Some IIS setting are specified by the user.  Like the location of the web site files and the port, when creating bindings.  So the customer input matters in this case and the defaults cannot be used.  That said, I am pretty sure that Install Shield LE does not allow to create custom dialogs nor does it allow to run custom actions whenever during installation.  I believe that you can run a custom action before the first dialog appears which is not an option as, again, a certain input from the user is required to supply credentials for the custom action.

    I think Professional version of IS LE can solve all these, although I am not sure how parameters are passed from dialogs to custom actions or if it's at all possible...  I wonder why MS got rid of Installer projects in 2012, seems like they were much more flexible that this InstallShield deal.


    Wednesday, October 16, 2013 10:28 AM
  • User1442230747 posted

    Hi Rockmus,

    What is the thirdparty app that your console application configures. Is it another site on IIS or a Windows application.

    If both are web sites then you can make use of MSDeploy and MSBuild



    You may have to create a batch file and call MSDeploy commands and create installer that calls this batch files. You may have challenges for making the configuration changes like the connection string but you can use these methods to automate most of your deployment process.

    Hope this helps.



    Tuesday, October 22, 2013 6:53 AM