我在WebAPI上遇到了部署时间问题,如果有人可以提供帮助,我将不胜感激。
路线:
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi2",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi3",
routeTemplate: "api/{controller}/{action}/{lines}/{swapAxis}",
defaults: new
{
controller = "LVChart",
action = "Get",
lines = RouteParameter.Optional,
swapAxis = RouteParameter.Optional
}
);
}
行动:
// GET api/<controller>
public IEnumerable<string> Get1()
{
return new string[] { "value1", "value2" };
}
// GET api/<controller>
[ActionName("Get")]
public string Get([FromUri] List<Line> lines, bool swapAxis)
{
_lineBuilder = new LVLineBuilder(swapAxis);
string result = BuildLines(lines);
return result;
}
现在好了,这就是问题所在。 Get1和Get(..)在localhost中运行良好。但是只要在服务器上部署(注意:我只使用发布向导部署webpages / js / dll)Get1工作正常但是抛出“500内部服务器错误”
Get1的网址是
.../api/LVChart/Get1/
Get是
.../api/LVChart/Get/?lines[]=15&lines[]=11&lines[]=12&lines[]=3&lines[]=10&lines[]=7&swapAxis=false
我真的没有关于如何解决这个问题的选择。
由于
答案 0 :(得分:1)
为此,我认为你的自定义路线应该超越dafault路线。即DefaultApi2和DefaultApi3应高于DefaultApi1。
同样要成为RESTfull,你也可以尝试避免额外的默认路由,只使用默认路由1并HttpGet
到/api/LVChart
,就像这样
.../api/LVChart?lines[]=15&lines[]=11&lines[]=12&lines[]=3&lines[]=10&lines[]=7&swapAxis=false