Development machine IIS version vs deployment IIS version - iis

My development machine is running Windows XP SP2 (and IIS 5.1 by implication).
Until recently our deployment environment was based around Windows Server 2003 (and therefore IIS 6.0).
We are about to move to Windows Server 2008 (and therefore IIS 7.0) for a new project.
Our projects use ASP.NET MVC and WCF Services.
Are there any key reasons for us to upgrade our development machines to run Windows Server 2008 (or possibly Vista, since this also comes with IIS 7.0)?

I would say it's in your best interest to upgrade your development machines to emulate as much of the production environment as possible within your means and resources. Otherwise you may fall into traps you're completely unaware of just by deploying an application from your development machine to the server's environment, which may pertain to differing versions of IIS, the version of .NET framework each machine is running, or just the way the code is compiled or executed at runtime.
Especially since IIS 7 has been vastly upgraded since IIS 5.1, why shouldn't you work closer with it's current functionality while developing before you missing out on some great opportunities? To really know what to expect from an application in production, develop it under the same circumstances.
Edit/Added: This link may help you see at least one significant example of how differing versions can affect your project.

I would recommend that you develop against the same major build as you intend to deploy on. That said, this leaves you with a few options. First, you could build against your local IIS installation (as it appears you currently do). That means that all of your boxes should likely be upgraded to Windows Vista or Windows 2008 Server (or Windows 7 as it is running IIS 7.5). Your second option is to deploy to a remote machine. It is entirely possible to deploy your application to a remote test machine running IIS 7 and remotely debug as well. The problem is that if you have more than one developer working on the remote site, it becomes problematic. IIS can handle the remote debugging on different webs for different developers, but depending on your architecture and configuration, you may still be sharing resources between instances of test web applications.You could occasionally deadlock each other. The only benefit is that you don't have to buy licenses for all of your machines (and potentially upgrade hardware to support the OS upgrade). However, I think that would be short-sighted. The loss of developer productivity wouldn't be worth it, IMHO.
There are major changes between IIS 5.1 and IIS 7.x. The changes to the architecture, such as the integrated pipeline, can result in drastically different behavior and compatibility issues. I think you will find that IIS 7 far more developer-friendly. The introduction of things such as failed request tracing, extended logging, and enhanced error pages alone make it much easier to track down errors in your application. In that regard, the upgrade is well worth it.

Related

IIS7.5 Debug vs Published permissions

I'm running Visual Studio 2010 and IIS 7.5
My site accesses a specified servers hardware for some statistical analysis.
When I debug my site in Visual Studio, I can access other servers hardware information with now issue. When I publish the site to IIS running as ASP.Net 4.0 appPool because the site is written under the 4.0 framework, the hardware retrieval fails. (note: when I run the site and analyze the local machine hardware, it works perfectly... the problem lies in analyzing another machine on the network.)
My question is, What is the difference in permissions a site is running under when debugging in Visual Studio in comparison to a published site in IIS 7.5?
Things I've tried...
Changing the app pool identity to every possible built in option, and my own domain profile, which is local admin on the machine I'm trying to retrieve hardware info about.
Changing the user that access the file directory of the website.
Changing app pools period. (The site has to run under .net 4.0, or else it barks out bad things).
I'm thinking I may need to install the site directly on the server that's being analyzed, but I find it odd that I can get all the data from other machine when I'm debugging. Any insight someone could bring would be greatly appreciated. Thanks!!
This answer is, in some cases, you have to add the appPool identity running the site to the "Performance Monitoring" group for the local machine in order to allow an ASP.NET site access the server's local hardware resources...

IIS Express or IIS for developing Classic ASP?

Wondering if I should stick with testing on my local IIS install or just use the Express version. Any reason why or why not?
generally, I would try to have the development / testing environment resemble your live environment as closely as possible.
so if you're using IIS in production, I'd recommend using it in development also.
I cannot tell you how many times I've seen web apps working perfectly on the development machine using IIS6, and crashing completely on IIS7.
I suggest this configuration:
IIS Express on the developer machine
same IIS as in production on a staging machine
IIS Express is the best choiche on your local computer because it's easy and fast to install and configure and doesn't require administrative rights to be installed.
It's completely integrated with Visual Studio and it has all the functionality of IIS.
And the configuration is in the source code repository so each developer can checkout the solution and is able to run it with minimal effort.
As sJhonny suggests is recommended to have an environment closer as possible to the production environment.
The best way is to have a staging server with the same software configuration of the production server, in your case with the same IIS complete version (it's enough a virtual machine).

How to setup IIS?

i want to setup IIS(internet information service) on my laptop. what is the setup formality or setup.
Installing IIS
This question should be moved to Server Fault however. Also, once posted there, you should provide a lot more information about what version of Windows, what version of IIS, and so forth.
Also, if you're just doing development, Visual Studio comes with a small development server, so IIS installations aren't usually needed for development.

Differences between IIS 6.0 / Windows 2003 and IIS 7.0 / Windows 2008

I am considering currently to get a VPS for some of my development test. I found some VPS at a cheap price, which suits me as it's only going to be used as a sandbox.
So far I know it is possible to install .Net 3.5 on the windows 2003 without problems, if I am correct it will be also possible to use IIS6 for all my development including asp.net mvc.
I am looking here if there is anything that would prevent me from using IIS6. I looked on google and apparently the main thing about IIS 7 is the modular design for plugins. This shouldn't be too much of a problem as most of my devs will be for personnal use.
(PHP on IIS will run fine with IIS6)
Our devs are doing all their development against Win2k3 / IIS6 servers with .NET 3.5 and have not encountered any issues that would have been fixed with IIS7. Which is probably good since I've yet to stand up a 2k8 server.
For devs, I think the main thing IIS7 adds is the integrated managed pipeline that allows you to write .NET code for IIS instead of an ISAPI filter.
Shared configs, FastCGI, caching improvements, etc. I think of more as admin features. Useful, but won't really affect your dev time.
IIS7 will provide faster services, but IIS6 should be able to do everything you need (unless you need to run PHP or something of the sort on IIS).

Any restrictions on development in Vista

I'm looking at a new computer which will probably have vista on it. But there are so many editions of vista; are there any weird restrictions on what you can run on the various editions? For instance you couldn't run IIS on Windows ME. Can you still run IIS on the home editions of vista?
Vista Home Basic only has enough IIS features to host WCF services and does not have any of web server features for hosting static files, asp.net, etc.
Here is a link to compare editions. I would recommend going with Home Premium or Ultimate depending on whether the computer will run on a domain.
You can't run Aero on the 'basic' editions, and there are some 'extras' that only run in Ultimate. You probably won't care about those for development, though. The only thing to be careful of would be that it has the same client access restrictions that XP did.
Get Home Premium unless you need to connect to a domain controller (if you don't know what that is, you don't need it).

Resources