2023-04-05 15:39:44 阅读( 8722)
通常在IIS6下部署ASP.NETMVC应用程序的时候,都是直接设置把所有请求都交由ASP.NET的ISAPI处理。
通常在iis6下在ASP.NET部署MVC应用时,直接设置将所有请求交给ASP.NET的IsapI。MVC是基于ASP.NET的,
默认情况下,对于任何请求,框架都会先检查物理路径中是否有物理文件,如果有,就不经过MVC的路由机制,否则就走路由。
所以,如果不考虑控制静态资源的权限,可以在ASP.NET设置静态资源由IIS直接处理,不经过ISAPI,这样可以提高一些性能。本文围绕这一主题,详细解释了部署过程。
0.MVC网站设计时,把静态资源放在一个文件夹里,目录结构建议用小写字母。
1.将web应用发布到某个路径(略)(顺便说一下,MVC2在功能上比MVC3弱,使用的组件少,可以直接部署System。Web . Mvc私下里;然而,由于MVC3功能的增加,
此外,引入了Razor引擎,并且依赖组件的数量增加。建议部署时直接安装MVC3。
2.创建网站(省略)
3.右键单击创建的网站,选择属性,并切换到主目录页面。
4. Click Configure, and in the wildcard application mapping, click Insert.
添加C:\WINDOWS\Microsoft .NET \ Framework \ v 4。0 .30319 \ aspnet _ isapi。dll,取消验证文件是否存在g的勾选。
(如果你用的是MVC2,可以去2.0找这个dll。去除静态文件的验证是这里的关键,这使得ASP.NET处理所有的请求)
5.单击确定
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不对静态文件进行检查,这样又可以提高一点性能。最终请求会像下图那样被serve
猜你喜欢
Guessyoulike