Visual Studio에서 WCF(Windows Communication Foundation) 또는 WCF Data Services 참조 문제 해결
적용 대상: Visual Studio
이 문서에서는 Visual Studio에서 WCF(Windows Communication Foundation) 또는 WCF Data Services 대한 참조를 사용할 때 발생할 수 있는 일반적인 문제에 대한 솔루션을 나열합니다.
서비스 참조를 업데이트하거나 제거하려면 WCF 데이터 서비스 참조 추가, 업데이트 또는 제거를 참조하세요.
서비스 주소가 제공되지 않는 경우 오류 발생
주소가 없는 이동 단추를 선택하면 "서비스 주소를 입력하세요"라는 오류 메시지가 표시되었을 수 있습니다. 이 문제를 resolve 서비스의 주소를 식별하고 입력합니다.
- 솔루션의 서비스인 경우 검색 단추를 사용하여 찾아서 선택한 다음 이동 단추를 다시 시도할 수 있습니다.
- 인터넷 어딘가에 호스트되는 서비스인 경우 WCF 서비스 참조 추가의 지침에 따라 추가합니다.
서비스에서 데이터를 반환하는 동안 오류가 발생했습니다.
서비스에서 또는 DataTable
를 반환 DataSet
하는 경우 "들어오는 메시지에 대한 최대 크기 할당량을 초과했습니다." 예외가 발생할 수 있습니다. 기본적으로 일부 바인딩의 MaxReceivedMessageSize
속성은 서비스 거부 공격에 대한 노출을 제한하기 위해 상대적으로 작은 값으로 설정됩니다. 예외를 방지하기 위해 이 값을 늘릴 수 있습니다. 자세한 내용은 MaxReceivedMessageSize을 참조하세요.
이 오류를 해결하려면 다음을 수행합니다.
- 솔루션 탐색기app.config 파일을 두 번 클릭하여 엽니다.
-
MaxReceivedMessageSize
속성을 찾아 더 큰 값으로 변경합니다.
내 솔루션에서 서비스를 찾을 수 없습니다.
서비스 참조 추가 대화 상자에서 검색 단추를 선택하면 솔루션의 하나 이상의 WCF 서비스 라이브러리 프로젝트가 서비스 목록에 표시되지 않습니다. 이 문제는 서비스 라이브러리가 솔루션에 추가되었지만 아직 컴파일되지 않은 경우에 발생할 수 있습니다.
이 오류를 해결하려면 다음을 수행합니다.
- 솔루션 탐색기 WCF 서비스 라이브러리 프로젝트를 마우스 오른쪽 단추로 클릭합니다.
- 빌드를 선택합니다.
원격 데스크톱을 통해 서비스에 액세스하는 동안 오류가 발생했습니다.
사용자가 원격 데스크톱 연결을 통해 웹 호스팅 WCF 서비스에 액세스하고 사용자에게 관리 권한이 없는 경우 NTLM 인증이 사용됩니다. 사용자에게 관리 권한이 없는 경우 사용자는 다음과 같은 오류 메시지를 받을 수 있습니다. "HTTP 요청은 클라이언트 인증 체계 '익명'으로 권한이 없습니다. 서버에서 받은 인증 헤더는 'NTLM'입니다."
이 오류를 해결하려면 다음을 수행합니다.
- 웹 사이트 프로젝트에서 속성 페이지를 엽니다.
- 시작 옵션 탭에서 NTLM 인증 검사 상자의 선택을 취소합니다.
참고
WCF 서비스를 독점적으로 포함하는 웹 사이트에 대해서만 NTLM 인증을 해제해야 합니다. WCF 서비스에 대한 보안은 web.config 파일의 구성을 통해 관리됩니다. 이렇게 하면 NTLM 인증이 필요하지 않습니다.
생성된 클래스 설정에 대한 액세스 수준은 영향을 주지 않습니다.
서비스 참조 구성 대화 상자에서 생성된 클래스에 대한 액세스 수준을내부 또는 친구로 설정하면 항상 작동하지 않을 수 있습니다. 옵션이 대화 상자에 설정된 것처럼 보이지만 결과 지원 클래스는 의 액세스 수준으로 Public
생성됩니다. 이는 를 사용하여 직렬화된 것과 같은 특정 형식의 알려진 제한 사항입니다 XmlSerializer.
서비스 코드 디버깅 오류
클라이언트 코드에서 WCF 서비스에 대한 코드를 단계별로 실행하면 누락된 기호와 관련된 오류가 발생할 수 있습니다. 솔루션의 일부인 서비스가 솔루션에서 이동되거나 제거되었을 때 발생할 수 있습니다.
현재 솔루션의 일부인 WCF 서비스에 대한 참조를 처음 추가하면 서비스 프로젝트와 서비스 클라이언트 프로젝트 간에 명시적 빌드 종속성이 추가됩니다. 이렇게 하면 클라이언트가 항상 최신 서비스 이진 파일에 액세스할 수 있으며, 이는 클라이언트 코드에서 서비스 코드로 단계별 실행과 같은 시나리오를 디버깅하는 데 특히 중요합니다.
서비스 프로젝트가 솔루션에서 제거되면 이 명시적 빌드 종속성이 무효화됩니다. Visual Studio는 더 이상 서비스 프로젝트가 필요에 따라 다시 빌드되도록 보장할 수 없습니다.
이 오류를 해결하려면 서비스 프로젝트를 수동으로 다시 빌드합니다.
- 도구 메뉴에서 옵션을 선택합니다.
- 옵션 대화 상자에서 프로젝트 및 솔루션을 확장한 다음 일반을 선택합니다.
- 고급 빌드 구성 검사 표시 상자가 선택되어 있는지 확인한 다음 확인을 선택합니다.
- WCF 서비스 프로젝트를 로드합니다.
- Configuration Manager 대화 상자에서 활성 솔루션 구성을 디버그로 설정합니다. 자세한 내용은 방법: 구성 만들기 및 편집을 참조하세요.
- 솔루션 탐색기 WCF 서비스 프로젝트를 선택합니다.
- 빌드 메뉴에서 다시빌드를 선택하여 WCF 서비스 프로젝트를 다시 빌드합니다.
WCF Data Services 브라우저에 표시되지 않음
WCF Data Service에서 데이터의 XML 표현을 보려고 하면 인터넷 Explorer 데이터를 RSS 피드로 잘못 해석할 수 있습니다. RSS 피드를 표시하는 옵션이 비활성화되어 있는지 확인합니다.
이 오류를 해결하려면 RSS 피드를 사용하지 않도록 설정합니다.
- 인터넷 Explorer 도구 메뉴에서 인터넷 옵션을 선택합니다.
- 콘텐츠 탭의 피드 섹션에서 설정을 선택합니다.
- 피드 설정 대화 상자에서 피드 읽기 보기 검사 켜기 상자의 선택을 취소한 다음 확인을 선택합니다.
- 확인을 선택하여 인터넷 옵션 대화 상자를 닫습니다.