2011-10-06 2 views
0

나는 응용 프로그램 내에서 API로 OData를 사용하고 있습니다. 내 데이터베이스 테이블 중 하나는 기간이 포함 된 고유 ID를 가지고 나는 다음과 같은 규칙을 사용하여 해당 테이블의 항목에 액세스하려고 해요 (.) :고유 식별자 내에 마침표가있는 항목을 처리하기위한 OData URI 규약?

http://foo.bar.com/services/v001.svc/Categories ('ABC')

..하지만를 나는 계속해서 다음과 같은 오류가 발생 해요 :

The controller for path '/services/v001.svc/Categories('A.B.C')' was not found or does not implement IController.

내가 처음이 내 경로에 잘못된 구성으로 인해했지만, 난 모든 사용자 지정 경로를 제거하고 여전히 같은 오류를 얻을 생각했다. 같은 URI 컨벤션을 통해 내 데이터베이스 내의 모든 테이블에있는 다른 모든 항목에 액세스하면 정상적으로 작동합니다. 이 항목과 다른 모든 항목의 유일한 차이점은 고유 식별자 열에 마침표를 사용한다는 것입니다.

도움말!

답변

1

문제는 Cassini (Visual Studio 내의 개발 웹 서버)가 URL의 마침표를 처리하는 데 문제가 있다는 것입니다. 해결책은 Cassini를 사용하는 대신 로컬 IIS 웹 서버를 사용하도록 프로젝트의 속성을 변경하는 것입니다. 이렇게하려면 다음을 수행

  1. 오른쪽 clisk을 프로젝트에
  2. "속성"을 클릭
  3. 는 "서버"가 "를 사용하여 로컬 IIS 웹 서버"의 설정 "웹"탭을
  4. 변경을 클릭, "IIS Express 사용"을 확인하십시오.
  5. 가상 디렉터리 등을 만들라는 메시지를 따르십시오.
  6. 다음에 디버그 할 때 응용 프로그램은 로컬 IIS 설치에서 실행 중이며 이제는 URL을 올바르게 처리해야합니다.

물론 이것은 IIS가 PC에 설치되어 있다고 가정합니다. 왜 카시니는 마침표를 좋아하지 않고 IIS 전체가 좋아합니까? 누가 알아?

관련 문제