【发布时间】:2014-03-23 07:42:25
【问题描述】:
我在使用 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 中运行良好。然而,一旦部署在服务器上(注意:我只使用发布向导部署网页/js/dll)Get1 工作正常,但 Get 抛出“500 Internal Server Error”
Get1 的 url 是
.../api/LVChart/Get1/
Get 是
.../api/LVChart/Get/?lines[]=15&lines[]=11&lines[]=12&lines[]=3&lines[]=10&lines[]=7&swapAxis=false
我真的没有办法解决这个问题了。
谢谢
【问题讨论】:
-
尝试使用像 ELMAH 这样的工具来记录错误,以便您可以检查堆栈跟踪并准确查看引发了哪种异常。 500 Internal Server Error 可能是操作方法抛出的任何异常。
-
试过了,但现在显示安装 elmah 的错误...不敢相信我的运气
-
我怀疑我的地图路线有问题?
-
我开始认为这是方法签名。您要求提供一系列数字,但该操作需要一系列 Line 对象。
标签: asp.net .net asp.net-web-api asp.net-mvc-routing asp.net-web-api-routing