Tuesday 15 February 2011

asp.net - Error in running web api -



asp.net - Error in running web api -

i have asp.net web api project in there 1 api controller , within 1 method,nothing else.when seek run it,it showing below error

http error 403.14 - forbidden web server configured not list contents of directory. [cacheoutput(clienttimespan = 300, servertimespan = 300)] public ienumerable<movie> get() { homecoming repository.getemployees().orderby(c => c.empid); }

and url http://domain:53538/api/employees

and webapiconfig is

public static void register(httpconfiguration config) { // web api configuration , services // web api routes config.maphttpattributeroutes(); config.routes.maphttproute( name: "searchapi", routetemplate: "api/{controller}/{action}/{searchstr}" ); config.routes.maphttproute( name: "defaultapiwithempid", routetemplate: "api/{controller}/{empid}", defaults: new { employeeid = routeparameter.optional } ); config.routes.maphttproute( name: "defaultapi", routetemplate: "api/{controller}/{id}", defaults: new { id = routeparameter.optional } ); }

in code , can see next corresponds same routing url.

config.routes.maphttproute( name: "defaultapiwithmovieid", routetemplate: "api/{controller}/{movieid}", defaults: new { movieid = routeparameter.optional } ); config.routes.maphttproute( name: "defaultapi", routetemplate: "api/{controller}/{id}", defaults: new { id = routeparameter.optional } );

note: in both cases lastly param marked optional, route left api/{controller} , when used api/movies, routing scheme got confused , stopped working!

so need re-arrange routing url, suggest replace 1st 1 ( in reply this)

config.routes.maphttproute( name: "defaultapiwithmovieid", routetemplate: "api/{controller}/{movieid}" );

so create movieid param mandatory, have url /api/movies/2 , here 2 film id

and later correspond api/movies( id here optional - referring 2nd code block in answer) , solution work,

asp.net asp.net-mvc iis asp.net-web-api web-api

No comments:

Post a Comment