我们正准备做一个ASP.net MVC应用程序对IIS 6的初始部署Windows Server 2003中,我们一直在阅读有关涉及特别是在去除的情况下,使用MVC应用extenionless URL的性能问题上运行从URL的控制器部分“的.aspx”延伸。
有没有人谁已经部署在过去的MVC应用程序经历了这方面的任何性能下降? 是不是明显的,并且是值得它具有简洁的网址? 我们的应用程序很少需要处理超过1000个左右的并发用户。
编辑:感谢所有的回应,它的工作相当出色,虽然也有经历一些人提到了一些奇怪的要求,我认为我们可以解决这些使用这里提到的建议。
我们最近部署了大约收到一个应用程序。 在3个月增长20万的页面浏览量使用IIS 6通配符映射设置,也没有性能问题。 我们做了最举办我们的形象在CDN,但其它静态内容直接从网站提供服务。
对于它的价值,IIRC,在asp.net处理程序会通过对静态文件类型的请求回到IIS经过处理的默认处理程序。 唯一的实用性能命中是在这个过程中,一个工作线程被占用识别和传送请求的时间。 但在所有的最极端的情况下,这是太微不足道的事。
作为一个额外的说明中,我们负荷测试,之前去住我提到的,发现它可以每秒处理近2000个静态请求和大约每秒700请求,涉及数据库活动的网页应用。 该网站托管在身后了1GB的互联网管道ZXTM负载平衡器4台IIS 6服务器。
下面是对整个静态文件处理业务一些好的建议的链接:
http://msmvps.com/blogs/omar/archive/2008/06/30/deploy-asp-net-mvc-on-iis-6-solve-404-compression-and-performance-problems.aspx
与没有使用在IIS 6扩展的问题是,你不想静态请求要经过ASP.NET堆栈。 如果你所有的静态请求都来自一个(或两个...)子文件夹(S), 就可以排除它们 。 这应该可以解决性能问题。
从链接后报价:
现在,为了消除对/ content子目录的通配符映射,打开命令提示符,进入C:\的Inetpub \ AdminScripts,然后运行:
ADSUTIL.VBS SET / SVC / 105364569 /根/内容/脚本映射 “”
...您的应用程序的“标识”号代替105364569。 (另外,你可以将“内容”的路径到任何其他目录。)
我们跑了一个相当繁忙的网站有IIS6为扩展名的通配符的URL上,虽然我们从来没有看到太大的性能损失,我们确实有一个小黑客工具,相当奏效:
对于仅包含静态文件,如/ CSS,/图像/脚本等所有文件夹,在IIS中我们将它们设置为自己的应用程序,并禁用通配符设置,这意味着IIS处理的请求,而不是通过ASP.Net路由。
URL重写可以帮助你解决问题。 我实现了解决方案,允许在即使在使用虚拟主机的任何IIS版本部署MVC应用程序。 http://www.codeproject.com/KB/aspnet/iis-aspnet-url-rewriting.aspx
相反,通过ASP.NET服务所有的请求,你可以指定如MVC作为扩展名(比如index.mvc)和映射该分机在IIS 6到aspnet_isapi.dll这意味着仅知[扩充将被asp.net处理,其他像静态文件留在同前即,通过IIS本身提供服务。