0

WebAPI에 배포 시간 문제가 있으며 누군가 도움을 줄 수 있으면 감사하겠습니다.WebAPI MapHttpRoute list 및 bool 유형의 작업 매개 변수와 관련된 문제

경로 :

 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 잘 작동하지만, 얻을 것은 "500 내부 서버 오류"

Get1의 URL

.../api/LVChart/Get1/ 
입니다 던졌습니다

가져가

.../api/LVChart/Get/?lines[]=15&lines[]=11&lines[]=12&lines[]=3&lines[]=10&lines[]=7&swapAxis=false 

하지만 난 정말이 문제를 해결하는 방법에 대한 선택의 여지가 실행하고 있습니다.

감사합니다.

+1

처럼 /api/LVChartHttpGet을 할 수 RESTfull 할 수 할 수 있도록 스택 트레이스를 검사하여 어떤 종류의 예외가 던져지고 있는지 정확하게 확인하십시오. 500 내부 서버 오류는 작업 메서드에서 throw 된 예외가 될 수 있습니다. – danludwig

+0

하지만 elmah를 설치하는 데 오류가 발생했습니다. 내 운을 믿을 수 없습니다. – daehaai

+0

내 maproute에 문제가 있다고 의심하십니까? – daehaai

답변

1

이 작업을 수행하려면 사용자 지정 경로가 dafault 경로 위에 있어야한다고 생각합니다. 즉 DefaultApi2 및 DefaultApi3은 DefaultApi1보다 커야합니다. 또한

는 또한 오류를 기록하는 ELMAH 같은 도구를 사용해보십시오 별도의 기본 경로를 피하려고 만 기본 경로 1을 사용하고이

.../api/LVChart?lines[]=15&lines[]=11&lines[]=12&lines[]=3&lines[]=10&lines[]=7&swapAxis=false