다음을 통해 공유


Visual Studio에서 WCF(Windows Communication Foundation) 또는 WCF Data Services 참조 문제 해결

적용 대상: Visual Studio

이 문서에서는 Visual Studio에서 WCF(Windows Communication Foundation) 또는 WCF Data Services에 대한 참조로 작업할 때 발생할 수 있는 일반적인 문제에 대한 솔루션을 나열합니다.

서비스 참조를 업데이트하거나 제거하려면 WCF 데이터 서비스 참조 추가, 업데이트 또는 제거를 참조하세요.

서비스 주소가 제공되지 않는 경우 오류 발생

주소가 없는 이동 단추를 선택하면 "서비스에 대한 주소를 입력하세요"라는 오류 메시지가 표시 될 수 있습니다. 이 문제를 해결하려면 서비스의 주소를 식별하고 입력합니다.

  • 솔루션의 서비스인 경우 검색 단추를 사용하여 찾아서 선택한 다음 이동 단추를 다시 시도할 수 있습니다.
  • 인터넷 어딘가에서 호스트되는 서비스인 경우 WCF 서비스 참조 추가의 지침에 따라 추가합니다.

서비스에서 데이터를 반환할 때 오류 발생

서비스에서 DataSet 또는 DataTable을 반환할 때 "들어오는 메시지의 최대 할당량을 초과했습니다" 예외가 발생할 수 있습니다. 기본적으로 일부 바인딩의 MaxReceivedMessageSize 속성은 서비스 거부 공격에 대한 노출을 제한하기 위해 상대적으로 작은 값으로 설정됩니다. 이 값을 늘리면 예외를 방지할 수 있습니다. 자세한 내용은 MaxReceivedMessageSize를 참조하세요.

이 오류를 해결하려면

  1. 솔루션 탐색기에서 app.config 파일을 두 번 클릭하여 엽니다.
  2. MaxReceivedMessageSize 속성을 찾아 더 큰 값으로 변경합니다.

내 솔루션에서 서비스를 찾을 수 없습니다.

서비스 참조 추가 대화 상자에서 검색 단추를 선택하면 솔루션의 하나 이상의 WCF 서비스 라이브러리 프로젝트가 서비스 목록에 표시되지 않습니다. 이 문제는 서비스 라이브러리가 솔루션에 추가되었지만 아직 컴파일되지 않은 경우에 발생할 수 있습니다.

이 오류를 해결하려면

  1. 솔루션 탐색기에서 WCF 서비스 라이브러리 프로젝트를 마우스 오른쪽 단추로 클릭합니다.
  2. 빌드를 선택합니다.

원격 데스크톱을 통해 서비스에 액세스할 때 오류 발생

사용자가 원격 데스크톱 연결을 통해 웹 호스팅 WCF 서비스에 액세스하고 사용자에게 관리 권한이 없는 경우 NTLM 인증이 사용됩니다. 사용자에게 관리 권한이 없는 경우 사용자는 다음과 같은 오류 메시지를 받을 수 있습니다. "HTTP 요청은 클라이언트 인증 체계 '익명'으로 권한이 없습니다. 서버에서 받은 인증 헤더가 'NTLM'이었습니다."

이 오류를 해결하려면

  1. 웹 사이트 프로젝트에서 속성 페이지를 엽니다.
  2. 시작 옵션 탭에서 NTLM 인증 확인란의 선택을 취소합니다.

참고

WCF 서비스를 단독으로 포함하는 웹 사이트에서만 NTLM 인증을 해제해야 합니다. WCF 서비스의 보안은 web.config 파일의 구성을 통해 관리됩니다. 이렇게 하면 NTLM 인증이 필요 없게 됩니다.

생성된 클래스 설정에 대한 액세스 수준이 아무런 영향을 주지 않음

서비스 참조 구성생성된 클래스 설정에 대한 액세스 수준 옵션을 내부 또는 친구로 설정하면 오류가 발생할 수도 있습니다. 대화 상자에서 옵션이 설정되는 것처럼 보이지만, 결과적으로 생성되는 지원 클래스는 Public 액세스 수준으로 생성됩니다. 이것은 특정 유형에 대해 확인된 제한으로, 대표적인 예는 XmlSerializer를 이용해 직렬화된 유형입니다.

서비스 코드 디버깅 오류

클라이언트 코드에서 WCF 서비스용 코드를 한 단계씩 실행하면, 누락된 기호와 관련된 오류가 발생할 수 있습니다. 솔루션의 일부인 서비스가 솔루션에서 이동되거나 제거되었을 때 발생할 수 있습니다.

현재 솔루션의 일부인 WCF 서비스에 대한 참조를 처음 추가하면, 서비스 프로젝트와 서비스 클라이언트 프로젝트 간에 명시적 빌드 종속성이 추가됩니다. 이렇게 하면 클라이언트는 항상 최신 서비스 이진 파일에 액세스할 수 있습니다. 클라이언트 코드를 서비스 코드로 단계별로 실행하는 것과 같은 디버깅 시나리오에서는 이점이 특히 중요 합니다.

서비스 프로젝트가 솔루션에서 제거되면 이 명시적 빌드 종속성은 무효화됩니다. Visual Studio에서는 이제 필요 시 서비스 프로젝트를 다시 작성한다고 보장하지 않습니다.

이 오류를 해결하려면 서비스 프로젝트를 수동으로 다시 빌드합니다.

  1. 도구 메뉴에서 옵션을 선택합니다.
  2. 옵션 대화 상자에서 프로젝트 및 솔루션을 확장한 다음 일반을 선택합니다.
  3. 고급 빌드 구성 표시 확인란이 선택되어 있는지 확인한 다음 확인을 선택합니다.
  4. WCF 서비스 프로젝트를 로드합니다.
  5. Configuration Manager 대화 상자에서 활성 솔루션 구성디버그로 설정합니다. 자세한 내용은 방법: 구성 만들기 및 편집을 참조하세요.
  6. 솔루션 탐색기에서 WCF 서비스 프로젝트를 선택합니다.
  7. 빌드 메뉴에서 다시 빌드를 선택하여 WCF 서비스 프로젝트를 다시 빌드합니다.

WCF Data Services가 브라우저에 표시되지 않음

WCF Data Service에서 데이터의 XML 표현을 보려고 하면 Internet Explorer에서 데이터를 RSS 피드로 잘못 해석할 수 있습니다. RSS 피드를 표시하는 옵션이 비활성화되어 있는지 확인하세요.

이 오류를 해결하려면 RSS 피드를 비활성화해야 합니다.

  1. Internet Explorer의 도구 메뉴에서 인터넷 옵션을 선택합니다.
  2. 콘텐츠 탭의 피드 섹션에서 설정을 선택합니다.
  3. 피드 설정 대화 상자에서 피드 읽기 보기 켜기 확인란의 선택을 취소한 다음 확인을 선택합니다.
  4. 확인을 선택하여 인터넷 옵션 대화 상자를 닫습니다.