Mvc 发布到 IIS5.1上 机器是xp系统 IIS映射我也添加了后缀是 .*
Global.asax 没有修改
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
我访问http://localhost时没有问题,
访问http://localhost/Data/Index时没问题,
访问http://localhost/Data时确有问题,404错误,为什么呢?
Html.ActionLink("链接", "Index", "Data")生成的url地址都是http://localhost/Data形式的。
奇怪的是,为什么在VS2010上调试时又一切正常呢?
http://localhost/Data
这样写只定位到controller,没有定位到具体的View,如果你没有配置这个controller下的默认路由肯定是404错误的
Html.ActionLink的用法参考:转载 ASP.NET MVC学习之(5):Html.ActionLink
这不能解释为什么在VS2010上调试又是正确的,我想可能跟IIS有关。
感谢您的回答。~:-)
@Zigzag: 这个问题是怎样解决的呀?
IIS 5.1?没在这个系统下安装过哦。现在IIS都是至少6.0了,你的5.1应该是在WINDOWS XP下的吧?好像也是可以升级的。
你说的这个问题,或者你在WebConfig里配置一下,让所有的请求都提交给.NET(好像是配置HttpHandler为系统默认的,可以搜索下),或者在IIS里,对站点配置一个运行程序,指向.NET的服务程序(具体的忘记了,你查下)
为什么我记得xp里自带的iis都是6.0了?iis5.1好像是win2000的吧……
不对。xp只支持5.1,
2003才支持6.0,
win7支持7.0
@Zigzag: 查了下资料 xp其实也支持6。话说,我很奇怪,还有开发人员用xp?难道不都是win7或2008r2了么?
访问 http://localhost/Data/ 有没有问题?
访问http://localhost/Data/没有问题,今天重装了IIS5.1,又可以访问了。
我想可能是aspnet注册的问题,注册最新版本的aspnet,默认的Action就可以访问了。
说错了,昨天是 访问http://localhost/Data/ 有问题,默认的Action不能访问,必须加Index才行。
经过大约两个半天的折腾,重新安装了IIS5.1,然后重新注册了ASP.net 4.0,神奇地又好了。
大家遇到这个问题,不用怀疑都是IIS安装有问题。我在本地部署后也没出现问题,估计是aspnet_iisreg的注册问题。