1

OWIN 미들웨어를 통해 호스팅되는 웹 API 2 프로젝트가 있습니다. 모든 것이 완벽하게 작동하고 API API를 예상대로 호출 할 수 있습니다. 다음과 같이 그러나, 내 WebApiConfig가 기본 경로를 정의합니다 : 내 API를 문서화하기로 결정 때까지 나를 위해 일 /api/values/dosomething기본 경로에 작업을 추가 할 때 경로 템플릿 구분 문자 '/'가 연속적으로 나타날 수 없습니다.

:

config.Routes.MapHttpRoute(
    name: "DefaultApi", 
    routeTemplate: "api/{controller}/{action}/{id}", 
    defaults: new { id = RouteParameter.Optional } 
); 

따라서, I과 유사한 URL을 사용하여 내 API를 호출해야합니다. 이를 위해 먼저 작동하지 않는 WebAPI Help Page package을 사용해 보았습니다. 그리고 내가 Swashbuckle Swagger을 시도하고 그 날이 문제를 완전히 방지 할 수 있는지,하지만 불행히도, 두 경우 모두 내가 같은 오류가있어한다고 생각 : 몇 가지를 시도 후

The route template separator character '/' cannot appear consecutively. It must be separated by either a parameter or a literal value. Parameter name: routeTemplate

를, 그것은을 변경할 때 밝혀졌다 경로 템플릿을 삭제하고 {action} 부분을 제거하면 오류가 사라집니다. 하지만 전체 프로젝트에서는 URL에 액션 메서드 이름이 포함되어 있다고 가정하기 때문에 실제로는 할 수 없습니다.

  1. 왜 처음부터 이런 일이 :

    어쨌든, 나는 다음을 알고 싶습니다?

  2. 이 동작을 수정하는 방법이 있습니까?

미리 감사드립니다.

답변

3

동일한 문제를 가져옵니다. 아래는 제 작업 코드입니다. 내가

[Route("/login")] 
public IHttpActionResult Get() 
{  } 

[Route("login")] 
public IHttpActionResult Get() 
{  } 

에서 방법 전에 경로를 변경할 때

[RoutePrefix("api/User")] 
public class UserController : ApiController 
{ 
    [Route("login")] 
    public IHttpActionResult Get() 
    {  } 
} 

나는 같은 오류가 발생했습니다. 제어기의 어떤 방법보다 먼저 여분의 문자 (/)를 추가하면 생성됩니다 (처음 호출되지 않는 경우).

귀하의 상태에 대해 확실하지 않습니다. 누군가 도움을 받으면 나는 나의 상황을 나눌 수 있습니다.

+0

이 동일한 문제가 있으며이 답변으로 해결되었습니다. – hines