2023-02-27 14:04:27 发布人:hao333 阅读( 7838)
通常在IIS6下部署ASP NETMVC应用程序的时候,都是直接设置把所有请求都交由ASP NET的ISAPI处理。
通常,当ASP.NET MVC应用程序部署在iis6下时,所有请求都直接设置为由ASP.NET的IsapI处理。MVC是基于ASP.NET的。默认情况下,框架会优先检查任何请求的物理路径中是否有物理文件。如果有物理文件,就不会通过MVC的路由机制,否则就会被路由。
因此,如果不考虑控制静态资源的权限,可以将静态资源设置为由IIS直接处理,而不是ASP.NET的ISAPI,这样可以提高一些性能。本文关注这个主题,并详细解释了部署过程。
0.MVC网站设计时,把静态资源放在一个文件夹里,目录结构建议用小写字母。
1.将web应用发布到某个路径(略)(顺便说一下,MVC2在功能上比MVC3弱,使用的组件少,可以直接私有部署System。Web . Mvc;但由于功能的增加和Razor引擎的引入,MVC3对组件的依赖更多,建议部署时直接安装MVC3)。
2.创建网站(省略)
3.右键单击创建的网站,选择属性,并切换到主目录页面。
4.单击配置,单击在通配符应用程序映射中插入,添加C: \ Windows \ Microsoft。NET \ Framework \ v 4 . 0 . 30319 \ aspnet _ isapi.dll,并取消选中验证文件是否存在。(如果你用的是MVC2,可以去2.0找这个dll。去除静态文件的验证是这里的关键,这使得ASP.NET处理所有的请求)
点击确定
6.允许ASP.NET 4.0扩展。
7.内容目录是放置静态资源的目录。将内容目录设置为由IIS直接处理请求,以提高性能。右键单击内容、属性
8.单击创建,然后单击配置以删除通配符应用程序映射下的内容。单击确定。这里利用IIS的一个bug,将目录设置为虚拟目录,并删除通配符应用映射的设置,使得这个虚拟目录的请求直接由IIS处理。
9.再次单击“删除”将虚拟目录还原到普通目录。IIS只支持该目录中的文件。
10.设置AppPool权限。单击站点使用的AppPool的属性,切换到Identity,然后选择Local System。这是一种惰性设置方法,以避免应用程序本身对系统的访问权限不足。
11.设置匿名访问权限。右键单击站点并选择权限。点击添加…并在弹出的对话框中输入IUSR_XXX(XXX是机器名)。
单击“确定”添加一个Internet来宾帐户,并保留默认的只读权限。
12.最后,如果您正在安装。第一次NET 4.0,别忘了注册。
在对ASP.NET MVC(2)的深入理解中,已经讨论过MVC框架的路由机制,其中提到“通过将RouteCollection的RouteExistingFiles设置为true(注意true是不匹配的,这个名字很奇怪),路由可以不匹配静态文件”,因此,我们可以将其设置为MVC不检查静态文件,这样可以稍微提高性能。最终请求将如下所示。
相关阅读
RelatedReading猜你喜欢
Guessyoulike