ASP.NET MVC在IIS6下部署技巧
通常在IIS6下部署ASP.NET MVC应用程🔭序的【de】时🏷候,都是直接设置🐷把所有请求都交由ASP.NET的【de】ISAPI处理【chù lǐ】🈸。MVC是基于ASP.NET的【de】,框架默【kuàng jià mò】认对于任何请【rèn hé qǐng】求都会【qiú dōu huì】优先检【yōu xiān jiǎn】🏧查物理🔆路径是否存在【fǒu cún zài】物理文⛩件🎪,如果存在的话【zài de huà】⛲就不通过MVC的【de】路由机制【jī zhì】,否则才🦖走路由。
因此💋,如果在【rú guǒ zài】不考虑控制静🎰态资源【zī yuán】🕠权限的【de】💵情况下,可以设置静态【zhì jìng tài】资源【zī yuán】🕠不通过ASP.NET的【de】ISAPI,而直接【ér zhí jiē】♓由【yóu】IIS处理,通过这【tōng guò zhè】🗽种方式提升一些性能🎽。本文围🍳绕这个【rào zhè gè】主题,详解部署过程。
0.在设计【zài shè jì】MVC网站的时候【shí hòu】,把静态资源统一放在【yī fàng zài】一个文🛒件夹下,建议目🎰录结构【lù jié gòu】使用小🙂写字母💽
1.把web应用程序发布到某个【dào mǒu gè】路径下🤳(略【luè】)(顺便提🍔一句【yī jù】,MVC2功能上📇比【bǐ】💓MVC3弱一些,用到的组件很🛏少,可以直【kě yǐ zhí】接私有【jiē sī yǒu】部署【bù shǔ】🌓System.Web.Mvc;但是【dàn shì】MVC3因为功能增加,而且引⬜入了Razor引擎【yǐn qíng】,依赖的组件增多【duō】,建议在🦇部署【bù shǔ】🌓的时候直🕕接安装MVC3)
2.创建一个web站点(略)
3.右击创【yòu jī chuàng】建的🍆web站点【zhàn diǎn】,选择属🔡性,切换到Home Directory页【yè】🐁
4.点击【diǎn jī】🌚Configuration,在【zài】🔑Wildcard application maps中,点击【diǎn jī】🌚Insert,添加🐺C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll,取消Verify that file existsg的勾选。(如果使用🏪MVC2的话🍱,可以到【kě yǐ dào】2.0下去找【xià qù zhǎo】这个🔐dll。这里去【zhè lǐ qù】掉对静态文件【tài wén jiàn】的验证是关键【shì guān jiàn】,这使得asp.net处理所有的请🚆求)
5.点OK
6.允许ASP.NET 4.0扩展
7.content目录是静态资【jìng tài zī】💤源放置👧的目录🖨,设置👟content目录下请求直【qǐng qiú zhí】接由【jiē yóu】IIS处理以【chù lǐ yǐ】提高性能。右击content,属性
8.点击【diǎn jī】🦒create,再点击【zài diǎn jī】🍈configuration,移除📖Wildcard application maps下的内【xià de nèi】🤪容。点击【diǎn jī】🦒OK。这里利用了【yòng le】😑IIS的一个【de yī gè】bug,把目录设置成【shè zhì chéng】虚拟目录,删除Wildcard application maps的设置【de shè zhì】,这样这🐮个虚拟目录的请求就直接由🛅IIS处理了。
9. 再点击Remove,把虚拟【bǎ xū nǐ】目录恢🌭复成普【fù chéng pǔ】通目录。这样只🚑有这个目录下💢的【de】🖌文件会【wén jiàn huì】受到IIS的【de】🖌“眷顾”
10.设置AppPool权限【xiàn】👀。点击站🔼点使用的【de】🌡AppPool的【de】🌡属性,切换到Identity,选择Local System。这是偷【zhè shì tōu】🍳懒的设【lǎn de shè】🀄置方法【zhì fāng fǎ】,以避免出现应用程序【yòng chéng xù】本身对🆙系统的【de】🌡访问权限【xiàn】👀不够
11.设置匿名访问【míng fǎng wèn】权限💫。右击站😍点【diǎn】,选择权【xuǎn zé quán】🥫限。点击【diǎn jī】Add…,在弹出【zài dàn chū】🌌的对话框中输入IUSR_XXX(XXX为机器😩名)。
点击【diǎn jī】OK,便可添😄加一个Internet Guest Account,保持默【bǎo chí mò】认的只【rèn de zhī】💅读权限🌆即可。
12.最后注意,如果是【rú guǒ shì】首次安【shǒu cì ān】🚒装🛡.NET 4.0,不要忘🥤了注册【le zhù cè】
在深入理解ASP.NET MVC(2)中【zhōng】🏋,讨论过👰MVC框架的🏑路由机制,其中【zhōng】🏋提到“可以通过设置RouteCollection的RouteExistingFiles为true,使得路由不匹配静态【pèi jìng tài】文件🥠(注意【zhù yì】🚑true是不匹【shì bú pǐ】配【pèi】,这个命名和奇【míng hé qí】✂怪)。”因此,我们可以这样【yǐ zhè yàng】🍋设置,以使得【yǐ shǐ dé】MVC不对静🔐态文件🥠进行检查【chá】🍲,这样又🏺可以提🏼高一点性能【xìng néng】💭。最终请求会像【qiú huì xiàng】下图那样被【yàng bèi】serve
关键词【guān jiàn cí】🥏:ASP.NET,MVC,IIS6
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 0
- 0
- 0
- 0
- 0