IIS Express에서 호스팅되는 ASP.NET WebAPI2는 2 개의 서로 다른 프로젝트에서 컨트롤러를로드합니다.

허드 보이

많은 OWIN WebApi2 프로젝트를 포함하는 솔루션을 만들었습니다. 이 프로젝트 중 두 개에는 동일한 경로를 가진 컨트롤러가 있습니다.

첫 번째 프로젝트를 시작하려고하면 다음 오류 메시지가 표시됩니다.

Multiple controller types were found that match the URL. 
This can happen if attribute routes on multiple controllers match the requested URL. 
The request has found the following matching controller types: 
Project1.WebApi.Controllers.Project1Controller Project2.WebApi.Controllers.Project2Controller

그러나 두 프로젝트 모두 서로 다른 네임 스페이스를 사용하며 둘 사이에 종속성이 없습니다.

project2의 컨트롤러가 Project1의 컨트롤러와 함께로드되는 이유는 무엇입니까?

감사

다린 디미트로프

그러나 두 프로젝트 모두 서로 다른 네임 스페이스를 사용하며 둘 사이에 종속성이 없습니다.

이것은 중요하지 않습니다. 런타임에 ASP.NET Web API는 상속 된 모든 참조 된 어셈블리의 모든 형식을 검사 ApiController하고 후보로 간주합니다. 따라서 두 개의 완전히 다른 프로젝트에 두 개의 다른 컨트롤러가 있어도 경로 충돌이있는 한이 충돌은 런타임에 나타납니다. 동일한 경로를 사용하여 2 개의 컨트롤러를 런타임에로드하지 않도록 애플리케이션을 수정해야합니다. 그리고 생각할 때 이것은 실제로 많은 의미가 있습니다. 경로가 주어지면 ASP.NET Web API는 둘 다 정확히 동일한 경로를 정의하는 경우 호출 할 두 컨트롤러 중 어느 하나를 알지 못합니다. 이 경우 애플리케이션이 시작 되 자마자 런타임에이 이상 현상이 감지되어 개발자에게 가능한 한 빨리이 문제에 대해 알립니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관