您的位置:首页 > 编程语言 > ASP

asp.net mvc 2.0部署

2010-04-10 22:17 483 查看
IIS 7

IIS7自身有对MVC的支持,部署方法同其他web application基本相同,需要注意的是,mvc 2.0 application在Handler Mappings里面会有MvcHttpHandler,如图:





我使用的是.net 4.0,我看了其他.net 2.0 的web appliation下的Handler Mappings都没有这个handler maping。

注意:.net 3.5以下(包括)的web application pool都是.net 2.0版本的,当然可能还包括.net 1.0或.net 1.1版本。但在.net 4.0下,提供了asp.net 4.0,因此使用.net 4.0的web application其application pool很有可能需要.net 4.0环境。



你可以通过查看应用程序池来查看运行的是.net 2.0还是.net 4.0。



在部署mvc 2.0 application时,如果你使用的是.net 4.0开发的,其所在application pool必须是.net 4.0的,并且managed pipeline mode为integrated。



IIS 6部署

IIS6的部署会比IIS7麻烦一些,我以我的实际部署过程来讲吧,当然刚开始也出现404或服务器错误等问题,不过好在最后都解决了,下面是正确的部署方式。
我是在.net 4.0环境下,使用VS 2010开发的,需要部署到window server 2003上(IIS6)。原系统装的是.net 3.5的,因此从我的机器上VS的安装包目录VS2010Ultimate_RC1/WCU/dotNetFramework下的.net 4.0环境dotNetFx40_Full_x86_x64.exe拷贝到服务器,然后安装。

MVC 2.0是不包含在.net 4.0里面的,因此需要手动下载安装(其实主要是System.Web.Mvc.dll文件),我的机器上直接装的vs 2010所有都包含在里面了。我没有在服务器上安装mvc 2.0,而是采用了“私有部署”,一般web application添加的.net环境下的dll时,如system.dll等,当你在发布时,这些dll是不会拷贝到发布后的bin目录的,因此我使用“私有部署”,将这些dll文件,包括System.Web.MVC.dll文件已经发布到bin目录下,这样应用程序运行时在GAC中找不到这个dll的时候就可以在bin中找到了。你需要做的就是,在引用的“Copy local”属性设为“true”即可。当然如果你不嫌麻烦也可以手动从GAC中将这些DLL文件拷贝到发布后的bin目录下。其实这话System.web.extension.dll差不多,如果应用程序没有装asp.net ajax时也需要将这个dll拷贝到bin目录。



下面就是在服务器上创建站点了,站点的创建和其他.net 2.0 web application一样,差别在于配置和asp.net环境上。



点击“配置”按钮,在“映射”选项卡中的“通配符应用程序映射”点击“插入”,选择.net 4.0目录(C:/Windows/Microsoft.NET/Framework/v4.0.30128)下的aspnet_ispai.dll文件,然后将“确认文件是否存在”前面的勾去掉。这一点很重要,因为MVC 2.0不想传统的asp.net应用程序文件是实际存在磁盘上的。如/func/default.aspx,是实际存在func目录下的default.aspx文件,而mvc应用/func/default,不表示访问的是func目录下的default文件。这一点一定要弄清楚。



然后在“ASP.NET”选项卡中的“ASP.NET version”选择4.0,如图



这样就完成了。



注意:如果使用.net 3.5开发的mvc应用的话,需要在“ASP.NET”选项开中选择asp.net 2.0,并且在“通配符应用程序映射”中选择asp.net 2.0目录(C:/Windows/Microsoft.NET/Framework/v2.0.50727)下的aspnet_isapi.dll,注意.net 3.0,.net 3.5都是使用的asp.net 2.0。

常见问题

当ASP.NET 使用2.0,“通配符应用程序映射”也是用asp.net 2.0的,就会出现“配置错误”,可能原因:.net 2.0无法加载.net 4.0下开发dll文件。



当asp.net 和“通配符应用程序映射”分别使用2.0和4.0时,就出现了“服务器应用程序不可用”的错误。



当asp.net 和“通配符应用程序映射”分别使用4.0和2.0时,就出现了 “Server Application Unavailable”的错误。这里显示英文提示,是因为我按照的.net 4.0是英文版本的。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: