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

最近自已学习了asp.net mvc,以前上学是有学过,那时候都没有怎么去用,现在花了一二天时间搞了下,总结下遇到的问题:

1添加母版页时要注意:

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

(-:-:)