Asp.net mvc 2 使用ASP.NET MVC2,IIS 6不会转发空路由
首先让我解释一下,我使用的是托管解决方案,在IIS 6的配置和设置方面,我无能为力 我的MVC2工作到一定程度,我使用以下Global.asax代码:Asp.net mvc 2 使用ASP.NET MVC2,IIS 6不会转发空路由,asp.net-mvc-2,iis-6,routes,url-routing,hosted,Asp.net Mvc 2,Iis 6,Routes,Url Routing,Hosted,首先让我解释一下,我使用的是托管解决方案,在IIS 6的配置和设置方面,我无能为力 我的MVC2工作到一定程度,我使用以下Global.asax代码: public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default",
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}.aspx/{action}/{id}",
new { action = "Index", id = "" }
);
routes.MapRoute(
"Root",
"",
new { controller = "Default", action = "Index", id = "" }
);
}
在第一个路由中,我必须指定{controller}.aspx,因为IIS 6无法执行非aspx代码(或者类似的代码,不太确定)
这很好,以下工作:
hxxp://mysite.com/home.aspx, hxxp://mysite.com/projects.aspx, hxxp://mysite.com/contact.aspx
这些都是控制器,我也可以执行他们受人尊敬的操作
问题是我不能正确地创建空URL(即hxxp://mysite.com/),它给我一个“目录列表被拒绝”错误
我的问题是,如果根目录下有一个default.aspx文件(它执行),我可以不使用简单的Response.Redirect加载主控制器吗
谢谢,,
Matthew您得到“目录列表被拒绝”这一事实意味着您没有默认文档,因此服务器试图显示根文件夹上的文件列表
将默认文档更新为类似“Default.aspx”的内容。您的主机提供商应该对此有一个选项。这是很常见的。您收到“拒绝目录列表”这一事实意味着您没有默认文档,因此服务器试图显示根文件夹上的文件列表
将默认文档更新为类似“Default.aspx”的内容。您的主机提供商应该对此有一个选项。这是很常见的。您得到的“目录列表被拒绝”这一事实意味着isapi文件与MVC不匹配。您得到的“目录列表被拒绝”这一事实意味着isapi文件与MVC不匹配。您可以在IIS6和IIS7上禁用此行为
// Disable IIS looking at physical files and directories
RouteTable.Routes.RouteExistingFiles = true;
您可以在IIS6和IIS7上禁用此行为
// Disable IIS looking at physical files and directories
RouteTable.Routes.RouteExistingFiles = true;
MVC2不使用默认文档,这就是问题所在。它通过Global.asax文件提供所有路由。不,我认为您看到的问题是IIS,而不是网站。尝试添加默认文档,以便IIS知道在未指示文档时将请求路由到何处。在那之后,你的MVC路由将接收请求。我尝试过了,它只加载Default.aspx,而路由根本不会被接收。这没有任何意义。我什么都没有。抱歉,MVC2没有使用默认文档,这就是问题所在。它通过Global.asax文件提供所有路由。不,我认为您看到的问题是IIS,而不是网站。尝试添加默认文档,以便IIS知道在未指示文档时将请求路由到何处。在那之后,你的MVC路由将接收请求。我尝试过了,它只加载Default.aspx,而路由根本不会被接收。这没有任何意义。我什么都没有。对不起,这是最准确的答案,但并没有真正解决我的问题。解决方案是只包含一个“default.aspx”页面,创建一个新的MVHttpRequest。这是最准确的答案,但并没有真正解决我的问题。解决方案是只包含一个“default.aspx”页面,该页面创建一个新的MVHttpRequest。