2017-12-11 3 views
0

WebAPI2을 사용하여 여러 웹 서비스를 만들고 있는데 로컬로 테스트 할 때 Chrome의 Restlet 클라이언트에서 API를 호출하지만 404 오류가 발생합니다.WebApi 호출 조회수 생성자가 내 방식이 아닙니다.

내 메서드와 내 생성자 모두에 중단 점을 추가 할 때 내 생성자의 중단 점은 적중되지만 내 메서드는 중단됩니다. 그러나 API 키에 대한 인증을 수행하는 메시지 처리기도 있는데,이 API 키는 히트를 치고 있으며이를 깨고 있습니다.

메시지 처리기 비동기 메서드를 제거하면 여전히 같은 문제가 발생하므로이 문제는 생각하지 않습니다.

http://localhost:51516/api/I306/I306ProcessDataFile

내가 함께 일하고 방법을 다음과 같이

내 방법을 아주 많이 감사합니다 잘못되어 가고 무슨에

[HttpPost] 
[Route("I306ProcessDataFile")] 
public string ProcessData() 
{ 
    var files = System.Web.HttpContext.Current.Request.Files.AllKeys; 
    if (files.Length == 0) 
    { 
     _result.Success = false; 
     _result.Message = _eh.ErrorMessages(ErrorCodes.NoFilesReceived, null); 
     _result.StatusCode = 500; 
     return GetXmlFromObject.GetXMLFromObject(_result); 
    } 

    var model = new List<I306Model>(); 
    try 
    { 
     foreach (var file in files) 
     { 
      foreach (var line in File.ReadAllLines(file)) 
      { 
       BuildModelList(file, model); 
       foreach (var item in model) 
       { 
        _dtSupplier.Rows.Add(
         item.Cont_Code, 
         item.Cont_Code_Purch, 
         item.Supplier_Code_txt, 
         item.Supplier_Code 
        ); 
       } 
      } 
     } 
     var ds = new DataSet(); 
     ds.Tables.Add(_dtSupplier); 

     return _i306.RunSqlUpdates(ds); 
    } 
    catch (Exception ex) 
    { 
     _result.Success = false; 
     _result.Message = _eh.ErrorMessages(ErrorCodes.ApplicationError, ex, ex.Message); 
     _result.StatusCode = 500; 
     return GetXmlFromObject.GetXMLFromObject(_result); 
    } 
} 

모든 모든 도움이됩니다 호출 오전

+0

1. 실제로 테스트에서 POST를 사용하고 있습니까? 2./I306 /이 URL에서 오는 위치는 어디입니까? –

+0

경로에'api'가 누락되어 있지 않으므로'[Route ("api/I306/I306ProcessDataFile")]'가됩니다. 실패한 요청의 응답으로 반환되는 메시지를 확인 했습니까? 같은 컨트롤러에서 일치하는 끝점을 찾을 수 없습니까? – Icepickle

답변

1

전체 API 경로를 만들어야합니다.

[Route("api/I306/I306ProcessDataFile")] 
+1

반드시 그렇지는 않습니다. 그는 컨트롤러 클래스에 [RoutePrefix ("api/I306")]를 가질 수 있습니다. –

+0

네, 다른 옵션입니다. – lucky

+0

@DanielHilgarth하지만 그냥 추측 게임, 안돼 :) 나는 OP가 더 자세한 내용을 제공해야한다는 데 동의합니다 :) – Icepickle

관련 문제