虚拟主机是IIS6,要运行我的MVC出现404错误,是IIS6需要配置一下才行,但是我没有权限修改IIS配置,现在IIS7的主机几乎没有,我要怎么办啊?
那你就要想法把你的URL的结尾都加上.axd等,交给aspnet处理。不知道你说的是不是这个问题
你翻下Scott的blog,有一篇推荐了一篇文章讲如何配置在iis6下运行mvc的
xuexi
那是因为访问空目录时,IIS会先处理掉,不会交给ASP.NET处理的原因。
你可以变通一下,把所有的域名的扩展名改为.aspx:
http://yoursite/controler/action/123.aspx
就可以顺利由ASP.NET处理
<!--在Web.config中添加下面的内容,value为你的服务器IIS的版本-->
<appSettings>
<clear />
<add key="IISVersion" value="6" />
</appSettings>
<!--然后在Global.asax.cs文件中,添加下面的处理代码试试-->
public static void RegisterRoutes(RouteCollection routes)
{
int iisVersion = Convert.ToInt32(ConfigurationManager.AppSettings["IISVersion"]);
if (iisVersion >= 7)
{
RegisterRoutesForNewIIS(routes);
}
else
{
RegisterRoutesForOldIIS(routes);
}
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
//SystemInitial();
}
private static void RegisterRoutesForNewIIS(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
routes.MapRoute("Topic", "{controller}/{action}/{id}");
}
private static void RegisterRoutesForOldIIS(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}.mvc/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
routes.MapRoute("Topic", "{controller}.mvc/{action}/{id}");
}