开发者

How 404 error asp.net mvc 2 IIS 7?

I tried to catch 404 errors like this... But

  1. when i try to load http://localhost:11415/wfwe/wefwe/ - all good work.
  2. When i try to load http://localhost:11415/order/ - fail (with error The RouteData must contain an item named 'action' with a non-empty string value.)
  3. When i try to load http://localhost:11415/Images/ - fail with error File does not exist

My routes:

      routes.Add("Order", new LowercaseRoute("Order/{action}/{id}",
                                               new RouteValueDictionary(
                                                   new
                                                       {
                                                           controller = "Order",
                                                           action = "",
                                                           id = UrlParameter.Optional
                                                       }),
                                               new MvcRouteHandler()));
routes.Add("NotFound", new LowercaseRoute("{*url}", new RouteValueDictionary(
                                                 new
                                      开发者_C百科           {
                                                     controller = "Pages",
                                                     action = "Http404",
                                                 }),
                                             new MvcRouteHandler()));

Why route NotFound - don't catch all 404 error. And When i try to upload to my hosting and try 404 i get this error (NotFound route not work at all) 404 - File or directory not found. The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.

I work with this all day, but nothig... please help me


When i try to load http://localhost:11415/order/ - fail (with error The RouteData must contain an item named 'action' with a non-empty string value.)

Because of this:

new { controller = "Order", action = "", id = UrlParameter.Optional }

You need to specify an action.

When i try to load http://localhost:11415/Images/ - fail with error File does not exist

If there is Images folder on your server, then it will "intercept" requests not letting them through to the MVC pipeline.


I make this:

  routes.Add("NotFound", new LowercaseRoute("{*url}", new RouteValueDictionary(
                                                 new
                                                 {
                                                     controller = "Pages",
                                                     action = "Http404",
                                                 }),
                                             new MvcRouteHandler()));

and this in web.config

 <customErrors mode="On">
 </customErrors>

and

<modules runAllManagedModulesForAllRequests="true"/>
<handlers/>
<httpErrors>
  <remove statusCode="404"/>
  <error statusCode="404" path="/page/http404/" responseMode="ExecuteURL"/>
</httpErrors>

This works how i want.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜