나는 이런 일이 발생하는 이유를 찾으려고 노력 중입니다. 내 모듈에 WebAPI 서비스가 있습니다. 공용 진입 점 (기본 경로)에 대한 특정 호출은 내 dev 컴퓨터 (Win7, IIS 7.5)에서 제대로 작동하지만 프로덕션 서버 (Win2012, IIS8)에서는 작동하지 않습니다. DNN 설치는 복제품입니다. 여기에 전화입니다.이 WebAPI 호출이 dev에서 작동하지만 Win2012에서 작동하지 않는 이유는 무엇입니까? "컨트롤러를 찾을 수 없습니다 ..."오류
/DesktopModules/DNNEurope/LocalizationEditor/API?tabid=1&moduleid=4
Win2012 설치 경로 이름을 지정하고이 컨트롤러에 네임 스페이스 다음 "에 대한 ... 컨트롤러를 찾을 수 없습니다"와 함께 응답은 라우팅 해야 작업을 잘 참고 그것은 dev에 잘 작동합니다.
여기에는 버크가 하나 있습니다.입니다. 나는 당신이 json 교환을하고있을 때 연습처럼 헤더 대신에 쿼리 문자열을 통해 tabid와 moduleid를 제공하고 있습니다. 이 전화는 다른 곳에서 소비되기로되어 있기 때문입니다. 다시 말하지만,이 작업은 로컬에서 잘 작동 함을 명심하십시오.
경로의 정의는 다음과 같습니다
mapRouteManager.MapHttpRoute("DNNEurope/LocalizationEditor", "Default", "", New With {.Controller = "Localization", .Action = "ListObjects"}, New String() {"DNNEurope.Modules.LocalizationEditor.Services"})
및 방법 :
<HttpGet()>
<AllowAnonymous()>
Public Function ListObjects() As HttpResponseMessage
어떤 아이디어?
웹 API는 컨트롤러를 찾는 어셈블리를 검색합니다. 종속성로드 실패로 인해 어셈블리로드로 인해 실패가 발생할 수 있습니다. 이러한 종류의 실패에서 Web API는 오류를 발생시키지 않고 자동으로이를 무시합니다. 당신은 비슷한 문제와 관련된이 답변을 살펴볼 수 있습니다 : http://stackoverflow.com/a/16674992/1184056 ... 로컬 호스트에서 모든 종속성을 사용할 수 있으므로 작업 중일 수 있습니다 ... 또한 무엇입니까 당신이 사용하고있는 웹 API의 버전? 4.0 또는 5.0? ... –