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下面运行

(-:-:)

原文地址:https://www.cnblogs.com/youshan/p/2060131.html