ASP.net路由结果为404
正如许多教程所指示的那样,我已经在Application_Start中定义了一个路由ASP.net路由结果为404,asp.net,routing,Asp.net,Routing,正如许多教程所指示的那样,我已经在Application_Start中定义了一个路由 RouteTable.Routes.Add( "Files", new Route("Files/Art", new FileRouteHandler())); 创建了我自己的路线管理员。然而,这似乎根本不起作用 当我调试应用程序时,我可以看到(通过断点)添加了路由,但是当我浏览到“”时,我会看到浏览器404(而不是ASP.net
RouteTable.Routes.Add(
"Files",
new Route("Files/Art",
new FileRouteHandler()));
创建了我自己的路线管理员。然而,这似乎根本不起作用
当我调试应用程序时,我可以看到(通过断点)添加了路由,但是当我浏览到“”时,我会看到浏览器404(而不是ASP.net 404)
当我在路由处理程序中放置断点时,它在访问URL时不会中断。访问URL时,应用程序_BeginRequest中的断点也不会中断
这是一个问题,但我完全理解为什么我得到一个通用的404。IIS怎么知道用asp.net处理这个URL,毕竟它并不存在
我这里缺少什么?确保在
web.config
中安装并配置了UrlRoutingModule
。类似于下面所示的内容:
<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>
...
...
我知道这是一个web服务器问题
简短回答:对于IIS6及以下版本(在我的例子中是5.1),像“Files/Art”这样的路径不起作用。它不会被传递到ASP.net。但是,诸如“Files.svc/Art”之类的路径将起作用
关键是IIS6及以下版本需要一个文件扩展名来知道ISAPI插件要使用什么。在我的例子中,.svc被配置为使用ASP.net
希望这是有意义的…是的,我已经准备好了。同样的问题。