I have a WP7 game that uses RESTsharp to communicate with my MVC4 RESTful server, but I often have issues making requests that work and therefore I want to debug where it fa
RouteDebugger is good for figuring out which routes will/will not be hit.
http://nuget.org/packages/routedebugger
Another way is to add an event handler in Global.asax.cs
to pick up the incoming request and then look at the route values in the VS debugger. Override the Init
method as follows:
public override void Init()
{
base.Init();
this.AcquireRequestState += showRouteValues;
}
protected void showRouteValues(object sender, EventArgs e)
{
var context = HttpContext.Current;
if (context == null)
return;
var routeData = RouteTable.Routes.GetRouteData(new HttpContextWrapper(context));
}
Then set a breakpoint in showRouteValues
and look at the contents of routeData
.
Keep in mind that in a Web API project, the Http routes are in WebApiConfig.cs
, not RouteConfig.cs
.
There are more possibilities for testing the routes. You can try either manual testing or automated as part of unit tests. Manual testing:
Automated testing:
Is GameController deriving from ApiController ? Are you using WebApi ?
If not then i think the "/api/" is reserved for new WebApi feature. Try changing your routing and controller name to "gameapi"
If however you are using WebApi.
Then remove api from yor BaseUrl
client = new RestClient
{
CookieContainer = new CookieContainer(),
BaseUrl = "http://localhost:21688/",
};
You can try ASP.NET Web API Route Debugger. It is written for Web Api. https://trocolate.wordpress.com/2013/02/06/introducing-asp-net-web-api-route-debugger/ http://nuget.org/packages/WebApiRouteDebugger/