thiagoprzy
thiagoprzy

Reputation: 411

ASP.NET MVC 3 Access Denied in just one server and one folder

I'm with the following issue: when I try to access a certain page (http://mysite.com/Client/) I get an Access Denied error (403 - Forbidden: Access is denied), but if I try to access the same URL using "Index" in the end (http://mysite.com/Client/Index), it works! And I have a lot of another folders that work without the "Index" in the URL.

The wierdest part is that in the test server (http://mysite.com:8080) I can access in both ways (/Client/ and /Client/Index/). By this time I don't know if it's an IIS 7 problem, or in the Client Folder for some reason, if it's in Web.config or if I'm just losing my mind!

The routes are the following:

    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
        );

One more thing: the test server app and the main server app are the same!

Can someone give me a hand? Thank you!

P.S.: There isn't any authorization setting in web.config.

Upvotes: 2

Views: 890

Answers (2)

thiagoprzy
thiagoprzy

Reputation: 411

resolved in a mysterious way: although I tried to resolve things editing the routes, I realized that the error was occurring before the application_start event. So, the problem was in IIS.

I tried to find the reason for the problem, but I couldn't, so I installed the URL Rewrite 2.0 and made the request of "/Client" redirect to "/Client/Index".

Wierd, isn't it? But this workaround resolved!

Thaks for all the answers!

Upvotes: 0

bobek
bobek

Reputation: 8020

From your question it seems like you don't have a Client controller, just folder. So, I guess the route is looking for a controller that It can't find. Or you have a controller but no actions in it. I am not sure, anyway, try adding this to your routes:

routes.IgnoreRoute("Client/{*path]");

EDIT:

Try adding this route:

routes.MapRoute(
            "Default", // Route name
            "{controller}/Index", // URL with parameters
            new { controller = "Home", action = "Index"} 
        );

Upvotes: 1

Related Questions