IIS6下部署ASP.NET MVC应用程序

来源:网络时间:2011-06-07

  通常在IIS6下部署ASP.NET MVC应用程序的时候,都是直接设置把所有请求都交由ASP.NET的ISAPI处理。MVC是基于ASP.NET的,框架默认对于任何请求都会优先检查物理路径是否存在物理文件,如果存在的话就不通过MVC的路由机制,否则才走路由。

  因此,如果在不考虑控制静态资源权限的情况下,可以设置静态资源不通过ASP.NET的ISAPI,而直接由IIS处理,通过这种方式提升一些性能。本文围绕这个主题,详解部署过程。

  0.在设计MVC网站的时候,把静态资源统一放在一个文件夹下,建议目录结构使用小写字母

  1.把web应用程序发布到某个路径下(略)(顺便提一句,MVC2功能上比MVC3弱一些,用到的组件很少,可以直接私有部署System.Web.Mvc;但是MVC3因为功能增加,而且引入了Razor引擎,依赖的组件增多,建议在部署的时候直接安装MVC3)

  2.创建一个web站点(略)

  3.右击创建的web站点,选择属性,切换到Home Directory页

IIS6下部署ASP.NET

  4.点击Configuration,在Wildcard application maps中,点击Insert,添加C:WINDOWSMicrosoft.NETFrameworkv4.0.30319aspnet_isapi.dll,取消Verify that file existsg的勾选。(如果使用MVC2的话,可以到2.0下去找这个dll。这里去掉对静态文件的验证是关键,这使得asp.net处理所有的请求)

IIS6下部署ASP.NET

  5.点OK

IIS6下部署ASP.NET

  6.允许ASP.NET 4.0扩展

IIS6下部署ASP.NET

  7.content目录是静态资源放置的目录,设置content目录下请求直接由IIS处理以提高性能。右击content,属性

IIS6下部署ASP.NET

  8.点击create,再点击configuration,移除Wildcard application maps下的内容。点击OK。这里利用了IIS的一个bug,把目录设置成虚拟目录,删除Wildcard application maps的设置,这样这个虚拟目录的请求就直接由IIS处理了。

发表评论

最新评论(共0条)