0

나는 MySQL 데이터베이스를 사용하여 WEB API을 만들었습니다. 이 표에는 미터의 일련 번호에 대한 데이터가 포함되어 있습니다. 일련 번호는 신호 강도 값과 신호 강도가 발생한 날짜 시간입니다. 지금 나는 계기의 일련 번호를 보내서 자료를 입수하는데 성공했다.웹 API에서 날짜 시간으로 작업하기

이제 날짜 시간 매개 변수도 보내고 있습니다. 그러나 그것은 나를 위해 일하지 않습니다. 아래는 내가 한 일이다.

public HttpResponseMessage GetByMsn(string msn, DateTime dt) 
     { 
      try 
      { 
       return Request.CreateResponse(HttpStatusCode.Found, medEntitites.tj_xhqd.Where(m=> m.msn == msn).Where(a=> a.date_time < dt)); 
      } 
      catch (Exception ex) 
      { 
       return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex); 
      } 
     } 

WebApiConfig 파일은 내가 http://localhost:14909/api/meters/GetByMsn/000029000033/2017-10-06T07:52:27

오류 나는 점점 오전 같은 URL을 전달하고 그 후

config.Routes.MapHttpRoute(
     name: "GetByMsn", 
     routeTemplate: "api/{controller}/{action}/{msn}/{dt}", 
     defaults: null, 
     constraints: new { msn = @"^[0-9]+$" , dt = @"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$" } 
     ); 

을 나는 또한 검색 한이를 위해 A potentially dangerous Request.Path value was detected from the client (:).

되어 포함 솔루션을 찾을 수 있지만 올바른 것을 찾을 수 없습니다. 또한 나는 날짜 시간에 :을 교체했지만 여전히 그것은을 위해 작동하지 않습니다 나

업데이트 1

동안 만 날짜가 나를 위해 작동하지만 난 시간을 추가 할 때하지

를 작동 않습니다 2017-10-06 전달

빠른 확인을 위해이 question을 확인했지만 여전히 해결할 수 없습니다.

내가 어떤 도움을 매우 높이 평가 될 것이다

모르는 뭔가가 있어야합니다

.

답변

0

많은 검색을 한 후에 드디어 해결책을 찾았습니다.

내 Web.config에서 미리 정의 된 허용되지 않거나 유효하지 않은 문자가 변경되었습니다. 아래에 다음을 추가했습니다. <httpRuntime requestPathInvalidCharacters="&lt;,&gt;,%,&amp;,*,\,?" />. 잘못된 문자의 표준 목록에서 :을 삭제했습니다.

자세한 내용은 solution

관련 문제