Automatic Deployment of ASP.Net MVC using TFS2010 Beta2 - asp.net-mvc

i am building an Asp.NET MVC web site, and i want to make the deployment to IIS automatically as part of the build process, as indicated in the title, i am using vs2010 beta2 with tfs2010 beta2, and the dev server is running widows server 2008 service pack2, wich means IIS 7.
so can anyone provide with set-by-step way on how to do that, thanks

This doesn't cover anything specific for TFS, but it's a good start at setting up Web Deploy:
http://www.hanselman.com/blog/WebDeploymentMadeAwesomeIfYoureUsingXCopyYoureDoingItWrong.aspx

Related

How can I deploy an asp mvc app to a different computer using IIS

Is there a way to deploy my mvc web app to another computer (which will be used as a server).
Also, in the server, there is no Visual Studio installed, how can I deploy it there?
Check out those links below:
Access from another PC
Run project on another PC

Why do I need to switch off module inheritance to make my ASP.NET MVC site work on Windows Server 2008?

I am developing an ASP.NET MVC 5 site targeting .NET 4.5.1 and for some reason I am struggling to deploy it on a Windows Server 2008 Standard edition server.
To be clear the site runs fine on my Windows 7 development machine and my Windows Server 2012 test environment but when I deploy it to the Windows Server 2008 in question I get this error:
At this point I tried all the advice about reinstalling ASP.NET and enabling runAllManagedModulesForAllRequests that I found in threads like this one ASP.NET MVC on IIS 7.5 but nothing would make it work.
Eventually I found that I could fix the problem by switching off the "Invoke only requests to ASP.NET applications or managed handlers" option for all managed modules in the application. What this did in essence was to make the following changes to the web.config file:
So my question is two-fold. Firstly, why is this change necessary to get the site to work? Secondly, am I safe to change the web.config permanently given that it will be installed on other servers as well, not all of which will be Windows Server 2008?

Publishing my asp.net mvc to IIS production server. should i have Visual Studio to do this

I have moved my asp.net mvc web application to our staging server and I have deploy it to IIS using visual Studio, as our staging server already contain Visual Studio .i did this bu right-click on my project and click on Publish. currently I need to move the asp.net mvc web application to production server and deploy it on IIS, but I have a couple of questions:-
Should I install visual studio inside my production server. Or it is better to avoid doing so ?
Is there a way to deploy my asp.net mvc directly to IIS , without uisng visual Studio ?
Thanks
Should I install visual studio inside my production server. Or it is better to avoid doing so ?
While you technically could, you shouldn't. There's no reason why you'd like to install visual studio on your production server since you'd only use VS to debug existing projects, however, your website should not be running in Debug Mode and it is a waste of resources to run a production website in Debug Mode. You should have your website pre-compiled and deployed in Release Mode. That said, an installation of VS will serve no purpose on a production server
Is there a way to deploy my asp.net mvc directly to IIS , without uisng visual Studio ?
Definitely, you can publish your pre-compiled website to a location in your hard-drive or even to a remote location and then manually copy the website files to your production server. That is the hard way. But, if you have Build management tool such as TeamCity integrated with source control system...then this task becomes even simpler since you can even publish projects automatically
1.bad idea. production server should have only your app code + advanced log system(nlog, etc) . nothing else.
2.
options:
xcopy deployment Compile your asp.net application and copy all the files to your server. You can do this by using FTP or shared directories. (Or anything else to transfer files.)
WebDeploy You have the possibility to deploy your asp.net webpage directly form your Visual Studio. If you go to "Build" and you choose "Publish Web". To be able to to do this you have to configure your server before. But this works automatically after you have set up everything. It's very handy since your deployment becomes easy to rebuild. http://weblogs.asp.net/scottgu/archive/2010/09/13/automating-deployment-with-microsoft-web-deploy.aspx
Web Setup - Installer Visual Studio provide also the option to build an installer. This works like installing usual software on your windows computer with the installer wizard. (See the link) http://weblogs.asp.net/scottgu/archive/2007/06/15/tip-trick-creating-packaged-asp-net-setup-programs-with-vs-2005.aspx
Manage multiple server There is also a way of managing the deployment of multiple servers. It seems to be a bit more complicated but could be interesting for professionals. (Check out on Google Microsoft Web Farm Framework 2.0
from here : Types of deployment in asp.net
Should I install visual studio inside my production server. Or it is
better to avoid doing so ?
Do not install VS on production servers. It is a bad practise.
Is there a way to deploy my asp.net mvc directly to IIS , without
uisng visual Studio ?
You can use your local Visual Studio to publish bits to remote IIS -
Automated Web Deploy using Visual Studio
Alternatively you can have new deployment strategies like let Team Foundation Server (TFS) deploy to IIS
One more option to is to FTP into Remote Web Server and push the latest bits from client side itself. I mean to ay, publish your site locally onto your file system. Then FTP into remote site using any FTP client like FileZilla. Then push the bits. For this to work, you need to configure remote server for FTP.

Deploying ASP.NET Application on IIS7

I am developing an ASP.NET MVC 4.5 application in C#. It works flawlessly when I run it after compiling on my local IIS Express.
However, when I try to upload it to a remote server it does not seem to recognize anything in its root directory. It only displays the default welcome screen.
I have tried reconfiguring the web.config file to point to Global.asax file, without any success. I am able to load single images by modifying the URL according to the sites structure.
What is the initial "starting file" on ASP.NET MVC 4.5 and how do I configure IIS7 to load it?
Check you server configuration (if possible), first enable Web Server (IIS) role (is posible to add from Server Manager or PowerShell), then install .NET Framework, or use aspnet_regiis.exe from .net framework folder (C:\Windows\Microsoft.NET\Framework\v4.0.30319 and C:\Windows\Microsoft.NET\Framework64\v4.0.30319) if server has configured iis web role and .net framework installed but configured incorrectly. If unsure what role features to add use Web PI and add IIS Recommended Configuration (http://www.microsoft.com/web/downloads/platform.aspx)
Note: In Visual Studio 2012 project template for MVC 4 Web Application references as copy-local MVC Assemblies from NuGet and therefor you don't need to install MVC 4 on web server.
Command to register current .NET version (from folder wich you are executing this utility, execute for both, first for 32-bit and than for 64-bit on 64-bit OS) with IIS:
aspnet_regiis -i
PowerShell to add Web Server role:
PS> Import-Module ServerManager
PS> Add-WindowsFeature Web-Server
If you see the default IIS welcome screen then it's probably because of incorrect website bindings (IP:port:hostheader). Whenever IIS cannot locate a website with specific binding it falls request back to "Default Web Site" with *:80 binding which you probably observe.

ASP.NET MVC runtime installation requirement in "test" server

I have an ASP.NET MVC application, and i have deployed it locally in my box. Now if i want to deploy it in a "Test" server (which is a tightly controlled environment), what do i need to install in the test server at the minimum - i.e. on top of the pre-installed ASP.NET 2.0 and .NET framework.
Do i need to isntall ASP.NET MVC runtime - obviously i won't be allowed to install any VS.NET or developer specific MVC stuff. It has to be the minimum runtime that is required to run the MVC ASP.NET app and nothing more.
Where do i get such an installer? Somewhere in MS web site?
Thanks.
Beyond having the latest version of the .NET framework (3.5 sp1), the only thing you may have to do is tweak your IIS settings depending on the version you are running.
You can read this great blog entry from Phil Haack on it as well talking about what needs to be in the BIN.
Here is a great writeup on what is required.
During the Beta, Scott Hanslemann wrote up the details on deploying an ASP.NET MVC application to a .NET 2.0 server:
Deploying ASP.NET MVC on ASP.NET 2.0
That will do the job if you can't get the server updated to .NET 3.5 SP1.
What you are probably looking for is a BIN deployment. A BIN deployment allows you to copy the required DLLs to the BIN directory on the target server, allowing them to run in a Medium Trust environment. No installation required.
For instructions on how to do this, see:
Bin Deploying ASP.NET MVC
http://haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx
http://www.asp.net/mvc/download/
or, more directly: http://www.microsoft.com/downloads/details.aspx?FamilyID=53289097-73ce-43bf-b6a6-35e00103cb4b&displaylang=en

Resources