2013-08-05 2 views
0

윈도우 폰 8, 윈도우 8 + 업데이트 64 비트, VS 2012를 실행 VS2012 관리자 나는 WCF 서비스를 만든원격 서버에서 오류를 반환했습니다 : NOTFOUND WCF 서비스

한다. 서비스에 대한 코드 :

[OperationContract] 
    Object GetCustomersObject(); 

구현 코드는

public Object GetCustomersObject() 
    { 
     object c = DataContext.Customers; 
     return c; 
    } 

그때 내 응용 프로그램에 새 웹 사이트를 추가하고 그것을 실행 등 계약을 가리 키도록 Service.svc 파일을 구성 웹 브라우저와 WSDL을 볼 수 있습니다.

그런 다음 WCFTestClient 유틸리티를 사용하여 테스트하지만 위의 메소드를 제외한 모든 메소드에 연결할 수 있습니다. 이는 객체를 지원하지 않기 때문입니다.

이제 Win Phone 8 프로젝트를 만들고 서비스에 연결 한 다음 오류가 발생합니다. "System.ServiceModel.CommunicationException '유형의 예외가 System.ServiceModel.ni.dll에서 발생했지만 사용자에서 처리되지 않았습니다. 코드 "

예외를 확장하면 메시지가 입니다. 원격 서버에서 오류를 반환했습니다 : NotFound.. 그런 다음 단계를 따라 http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj684580(v=vs.105).aspx에서 찾을 수 있습니다. VS에서 IIS를 실행하고 있기 때문에 다른 지침을 따르지 않습니다 (즉, 제안 된 항목을 추가하고 방화벽 포트를 열고 기존 서비스를 삭제 한 다음 종료 한 후에 다시 읽습니다.) IIS 서비스).

여전히 같은 오류가 발생합니다. 그래서 서비스를 삭제하고 IP, 컴퓨터 이름을 사용하여 다시 추가하고 사용 된 어느 것이든지 동일한 오류가 발생합니다.

또한 방화벽 문제가 아니며 동일한 문제가 발생하지 않도록 Windows 방화벽 서비스를 해제하려고했습니다.

나는 다른 무엇을 시도해 볼 수 있습니까?

+0

를 작동 할 수 있습니다 : http://inaspiralarray.blogspot.com/2013/04/finding-root-cause-of- wcf-exceptions.html –

답변

1

슬프게도 "NotFound"는 서비스가 실제로 발견되지 않았 음을 의미하지 않습니다. 그것은 당신에게 "실패한 것"을 말하기위한 IIS의 방법입니다.

대부분 서비스 또는 서비스 인터페이스에 KnownType 또는 ServiceKnownType 특성이 없기 때문에 실패합니다.

WCF의 serializer는 전지하지 않습니다. 함수 서명을보고 정확하게 그 함수를 직렬화합니다. 서명하면 물건을 돌려 준다고합니다. null 또는 new object() 이외의 문자를 반환하면 시리얼 라이저에 문제가 생겨 서비스 호출이 실패하게됩니다. 기본 프레임 워크 유형이 아니며 메서드 시그니처에서 볼 수없는 내용을 serialize하려는 경우 서비스 클래스에 해당 유형의 KnownType 특성을 지정하거나 인터페이스의 ServiceKnownType 특성을 지정하여 DataContractSerializer가 앞으로 올 일을 알 수 있도록해야합니다 .

예 : 응용 프로그램이 로컬 호스트에서 웹 서비스를 찾을 수 없기 때문에

[ServiceContract] 
[ServiceKnownType(typeof(YourCustomer))] 
public interface IYourService 
{ 
    [OperationContract] 
    Object GetCustomersObject(); 
} 
+0

많은 KnownType 속성을 스태킹하는 대신 http://inaspiralarray.blogspot.com/2013/07/an-alternative-to-stacking-many.html –

+0

안녕하세요. 위의 속성을 추가 한 후 두려워 할 것입니다. (ServiceKnownType) 나는 여전히 같은 오류가 발생합니다. 그냥 뭔가 잘못하지 않는 인스턴트 메신저를 제거하는 사람은 제가 참조 할 수있는 작업 튜토리얼을 알고 그 결과를 볼 수 있습니까? 또는 위에 게시 된 메소드가 제대로 작동하는지 여부를 결정하십시오. – Computer

+1

새 WCF 서비스 프로젝트를 추가 할 때 Visual Studio에서 만드는 서비스 만 사용해도됩니다. 작동하는 경우 코드에 문제가 있으며, 그렇지 않은 경우 인프라에 문제가 있습니다. – nvoigt

1

당신은 일반적으로 CommunicationException을 참조하십시오.여기

당신은 추적을 돌 수 있었다 같은에 대한 솔루션이

https://msdn.microsoft.com/library/windows/apps/jj684580%28v=vs.105%29.aspx

+0

이 링크는 질문에 대답 할 수 있지만 답변의 핵심 부분을 여기에 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. – Max

관련 문제