如何将MVC项目部署到 IIS 5.1

来源:互联网 发布:js 导出excel 编辑:程序博客网 时间:2024/05/02 04:21

      最近在工作之余一直忙于发布一个MVC站点,原本MVC项目应该发布在Windows Server 2003的IIS 6.0以上版本的,但是自己的机子只装有XP,而一直都没能成功将MVC项目发布在XP下的IIS 5.1上,要么出现各种各样的编译错误,要么就是找不到样式、图片等路径。今晚通过不遗余力的终于,成功完成这一使命,哈哈!


       当然,这些都归功于网上各位高手的指教,我只是搜集他们的经验,然后总结并提取其中的精华,包括国内的以及国外的相关网站上的信息。现在将这些写出来,以供后来者不至于再那么费力的发布强大的MVC项目了!     
      废话有点多了,下面开始行动吧。
Windows XP Professional sp3,SQL Server 2005,Microsoft .NET Framework 3.5 sp1,IIS 5.1.
MVC项目,呵呵!我的项目是以ASP.NET MVC 1.0 + LINQ + jQuery进行开发的。
       3.在Visual Studio 2008中修改Web.config文件,在<handlers>节点下添加<add name="MvcScriptMap" preCondition="classicMode" verb="*" path="*.mvc" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" />;将pages节点改为<pages validateRequest="false" pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                     <controls>
                            <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                            <!-- 如果出現 <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />-->
                            <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                     </controls>
                     <namespaces>
                            <add namespace="System.Web.Mvc"/>
                            <add namespace="System.Web.Mvc.Ajax"/>
                            <add namespace="System.Web.Mvc.Html"/>
                            <add namespace="System.Web.Routing"/>
                            <add namespace="System.Linq"/>
                            <add namespace="System.Collections.Generic"/>
                     </namespaces>
</pages>
      4.修改Global.asax文件,在RegisterRoutes方法下修改路由配置,添加这么一行代码:routes.Add(new Route("{controller}.mvc/{action}/{id}", new MvcRouteHandler()){
Defaults = new RouteValueDictionary(new { action = "Index", id = "" }),
});
      5.在项目引用下将System.Web.Abstractions、System.Web.Extensions、System.Web.Mvc、System.Web.Routing的属性中的“复制到本地”设置为true。
      6.OK,现在可以发布了,如果发布后在bin目录下未见到System.Web.Mvc.xml,请在MVC的安装路径下找到该文件并复制到bin目录下。
      7.部署到IIS上,这个不用我多说了。
      8.右击IIS的“默认网站”选择“属性”,选中“主目录”标签,单击“配置”,在应用程序配置中选中“映射”标签,单击“添加”,在可执行文件放入“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll”,扩展名填“.*”,并去掉“检查文件是否存在”,单击“确定”(如确定按钮不可用请单击可执行文件的文本框激活该按钮)。
      至此,我的MVC项目已经基本能正常运行于XP 的IIS 5.1上咯,值得提醒的是,网站目录的图片等文件如果没有添加到项目来,可能发布的时候这些图片就不一起发布出来。而我之所以说基本,那是因为发布后尚未能访问到我写的Web Services文件中的相关方法,显示“404 Not Found”。

原创粉丝点击