2010-01-21 88 views
1

我定义中的Application_Start路线,因为这么多的教程已经指示ASP.net路由结果404

RouteTable.Routes.Add(
      "Files", 
      new Route("Files/Art", 
       new FileRouteHandler())); 

而且创建了自己的RouteHandler。但是,这似乎并没有工作。

当我调试应用程序时,我可以看到(通过断点)路由被添加,但是当我浏览到“http://localhost/MyApplication/Files/Art”时,我得到浏览器404(不是ASP.net 404)。

当我在路由处理程序中放置一个断点时,它在访问URL时不会中断。访问URL时,Application_BeginRequest中的一个断点不会中断。

这是一个问题,但我完全理解为什么我会得到一个通用的404。IIS如何知道用asp.net处理这个URL,毕竟它并不存在?

我在这里错过了什么?

回答

1

确保您已安装并配置UrlRoutingModuleweb.config。类似的事情发生了什么如下图所示:

<system.web> 
     ... 
     <httpModules> 
     ... 
     <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
     </httpModules> 
    </system.web> 
+0

是的,我在那里。同样的问题。 – 2010-01-21 20:12:13

1

我知道这是一个网络服务器的问题...

http://www.asp.net/%28S%28pdfrohu0ajmwt445fanvj2r3%29%29/learn/mvc/tutorial-08-vb.aspx

简短的回答:在IIS 6(在我的案件5.1)以下的路径如“文件/艺术”不起作用。它不会传递给ASP.net。但是,诸如“Files.svc/Art”之类的路径将起作用。

问题是,IIS 6及以下版本需要一个文件扩展名来知道ISAPI插件的使用。在我的情况下,“.svc”被配置为使用ASP.net。是的,我在那里有。

希望是有道理的...