I have a Web Api project on Visual Studio 2013. suddenly, I started getting this error, without doing any change:
A direct route cannot use the parameter 'controller'. Specify a literal path in place of this parameter to create a route to a controller.
> Line 12: protected void Application_Start() > Line 13: { > Line 14: GlobalConfiguration.Configure(WebApiConfig.Register); > Line 15: GlobalConfiguration.Configuration.IncludeErrorDetailPolicy IncludeErrorDetailPolicy.Always; > Line 16: GlobalConfiguration.Configuration.EnsureInitialized();
When I refresh the page I get another error:
{ "message": "An error has occurred.", "exceptionMessage": "The object has not yet been initialized. Ensure that HttpConfiguration.EnsureInitialized() is called in the application's startup code after all other initialization code.", "exceptionType": "System.InvalidOperationException", "stackTrace": " at System.Web.Http.Routing.RouteCollectionRoute.get_SubRoutes()\r\n at System.Web.Http.Routing.RouteCollectionRoute.GetRouteData(String virtualPathRoot, HttpRequestMessage request)\r\n at System.Web.Http.WebHost.Routing.HttpWebRoute.GetRouteData(HttpContextBase httpContext)" }
This is my WebApiConfig:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
My Global.asax.cs:
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
GlobalConfiguration.Configuration.EnsureInitialized();
}
And this is my test function on my Test Controller:
public string Get(int id)
{
return "value";
}
Please advise, any help will be very much appreciated.