eecdc 发表于 2015-8-13 14:33:49

asp.net mvc 网站发布后IIS配置问题小结

  最近自已学习了asp.net mvc,以前上学是有学过,那时候都没有怎么去用,现在花了一二天时间搞了下,总结下遇到的问题:
  1添加母版页时要注意:
  <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
      </asp:ContentPlaceHolder>
  这个 ID是我遇到并搞了许久的东东,在添加view时引用不了母版页,原来是ID的原因,要引用哪个母版页时,ID一定要匹配.
  2、多级目录时路由的问题。其实这个不是路由的问题,完全不用理它,中要在 Controller 中的action的返回参数中设置:
  如下:
  public ActionResult Index()
      {
            return View("~/Views/MVC/Index.aspx");//返回指定的目录层级,可多目录嵌套
      }
3、发布后IIS的配置
  IIS 7.0
直接创建WebSite就可以了

可能出现500.19错误,原因是先安装了vs,后安装iis
解决方案: cmd导航到C:\Windows\System32\inetsrv
运行appcmd unlock config -section:system.webServer/handlers
如果没有权限就到该目录config文件夹下分配一下权限。

IIS 6.0
如果服务器上没有安装asp.net mvc 1.0, 则需要在mvc app项目中将System.Web.Mvc、System.Web.Routing、System.Web.Abstractions三个dll的copy local属性设为true。这三个dll需要和项目dll一起发布。
部署到IIS6.0有两种方法
1,添加扩展名
在项目Global.asax文件中更改路由方式(添加.mvc扩展名)
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { action = "Index", id = "" }
);
routes.MapRoute(
"Root",
"",
new { controller = "Home", action = "Index", id = ""
};
在iis中添加.mvc映射和WildCard Application Maps
  iis站点-->属性--->主目录-->配置-->映射-->插入
找到c:\windows\microsoft.net\Framework\v2.0....\aspnet_isapi.dll, 取消 "确认文件是否存在" (不要选中),--> 确定
  最后得以在IIS下面运行
  (-:-:)
页: [1]
查看完整版本: asp.net mvc 网站发布后IIS配置问题小结