ASP.net MVC with unlimited url on IIS 6

We are preparing for the initial deployment of an ASP.net MVC application on IIS 6 running on Windows Server 2003. We are reading about performance issues related to the use of harmless URLs in MVC applications, in particular when the ".aspx" extension is removed from parts of the URL controller.

Has anyone who deployed an MVC application in the past experienced performance degradation in this area? Was it noticeable and was it worth having cleaner URLs? Our application will rarely deal with more than 1000 or so concurrent users.

Edit: Thanks for all the answers, it works really well, although there are some strange requests going through some of the people mentioned, I think we can get around them with the suggestions mentioned here.

+2


source to share


5 answers


We recently deployed an application that received approx. 20 million page views in 3 months using IIS 6 lookup mapping setup and performance issues. We hosted most of our images on a CDN, but other static content was submitted directly from the site.

For what it's worth, IIRC, the asp.net handler will pass requests for static file types back to IIS with a default handler to handle. The only practical success is the amount of time the worker thread is busy identifying and submitting the request. In all but the most extreme scenarios, this is too trivial for matter.

As a side note, we downloaded the tested app I mentioned before it went live and found it could handle nearly 2000 static requests per second and about 700 requests per second for pages related to database activity. The site was hosted on 4 IIS 6 servers behind a ZXTM load balancer with 1GB internet feed.



Here's a link with some good advice on the entire static file-handling business:

http://msmvps.com/blogs/omar/archive/2008/06/30/deploy-asp-net-mvc-on-iis-6-solve-404-compression-and-performance-problems.aspx

+3


source


The problem with not using extensions in IIS 6 is that you don't want static requests to go through the ASP.NET stack. If all of your static requests come from one (or two ...) subfolders, you can exclude them . This should fix the performance issue.

Quoting from the linked post:



Now, to remove the wildcard map in the / Content subdirectory, open a command, navigate to c: \ Inetpub \ AdminScripts, and run:

adsutil.vbs SET / W3SVC / 105364569 / root / Content / ScriptMaps "

... replacing 105364569 with the "Identity" number of your expression. (Alternatively, you can replace "Content" with a path to any other directory.)

+2


source


We ran a fairly busy site with IIS6 wildcards for unreferenced URLs, and while we didn't notice a lot of performance hit, we had a little hack that worked well enough:

For all folders that only contained static files like / css, / images, / scripts, etc., in IIS, we installed them as our application and turned off the wildcard setting, which meant that IIS was processing requests and not routing through ASP.Net.

+2


source


Recycling urls can help you fix the problem. I have implemented a solution that allows you to deploy an MVC application in any version of IIS, even if using shared hosting. http://www.codeproject.com/KB/aspnet/iis-aspnet-url-rewriting.aspx

+2


source


Instead of serving all ASP.NET requests, you can specify eg. mvc as an extension (say index.mvc) and map that extension to aspnet_isapi.dll in IIS 6. This means that only known extensions will be handled by asp.net, others like static files remain the same as before how they are served by IIS itself.

+1


source







All Articles