IIS Express or IIS for developing Classic ASP? - iis

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).

Related

Can I install WebSocket Support in IIS in Production without downtime?

We didn't realize we were missing support for WebSockets in IIS in our production environment due to the Windows feature not being installed (Windows Server 2012).
Can we install the feature in our production environment without causing down time or the app pool on our web applications to recycle? What experience has anyone had installing features in Windows in production in general? Is there documentation somewhere that details what is safe or unsafe to do?

When should I use WebDev.WebServer.exe?

I have a ASP.NET MVC6 web application developed in VS 2015. I run it on Windows 10. I have client side JavaScript compiled by Gulp which is dropped in the wwwroot folder which I want to debug as well as debug the WebAPI controllers on the server side. The application will be hosted on Azure after the development is complete.
During the development, should I use (1) WebDev.WebServer.exe (2) IISExpress.exe (3) IIS10 or (4) DNU to host the ASP.NET website?
IIS Express (2) is good enough for about 95% of things you need to do during development, it's as good an implementation of "proper" IIS7+ as you'll likely need.
That said, for things you can't properly emulate on your workstation, such as Azure, periodic deployment to your Azure environment is always a good idea, just to be sure you don't fall into the trap of "Well it worked on my machine".
Never use the built-in webserver.exe, it's a toy and is severely limited in functionality.

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.

Development machine IIS version vs deployment IIS version

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.

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).

Resources