2017-12-22 32 views
-1

GetTestValue 메서드를 사용하여 WCF 서비스를 만들었습니다. 또한이 서비스를 테스트 할 테스트 응용 프로그램을 만들었습니다.메서드 이름 뒤에 비동기를 추가하여 WCF 데시 레이 티브 바디 오류가 발생했습니다.

연결된 서비스가있는이 WCF 서비스를 테스트 응용 프로그램에 추가하면 GetTestValueAsync에만 전화 할 수 있으며 GetTestValue 메서드는 없습니다. 어떻게 든이 추가 프로세스는 메소드 이름 뒤에이 비동기적인 것을 추가합니다. 따라서이 테스트 응용 프로그램에서 GetTestValueAsync을 호출하면 WCF 호출이 올바르게 작동합니다. 나는 결과를 되 찾는다.

그럼 나도이 WCF 서비스를 추가 된 자 마린 크로스 응용 프로그램의 응용 프로그램을 작성하고, 한 나는 다음과 같은 오류 얻을이 응용 프로그램에서 GetTestValueAsync를 호출 할 때 : 테스트 프로젝트에

Error in deserializing body of request message for operation 'GetTestValue'. OperationFormatter encountered an invalid Message body. Expected to find node type 'Element' with name 'GetTestValue' and namespace ' http://tempuri.org/ '. Found node type 'Element' with name 'GetTestValueAsync' and namespace ' http://tempuri.org/ '

어떻게 든 이상한 그것은 잘 작동하고, Xamarin 교차 어플리케이션에서는 그렇지 않습니다.

  1. 누군가 동일한 문제가 있었습니까?
  2. 이 연결된 서비스가 항상 Async 인 내 메서드 이름입니까?

Async이 메소드 이름에 추가되는 것을 어떻게 중지시킬 수 있습니까?

도움 주셔서 감사합니다.

답변

0

현재 Xamarin 응용 프로그램은 WCF Web Service Reference 연결된 서비스 공급자 (bugzilla.xamarin.com Bug 51959)가 생성 한 작업 기반 비동기 WCF 프록시 메서드와 호환되지 않습니다. WCF 프록시 방법의 이전, 호환 스타일을 생성하는

한 가지 방법은 Developer Command Prompt에서 /async/tcv:Version35 스위치 SvcUtil.exe를 실행하는 것입니다. 이를 통해 동기식 프록시 메소드, 시작/종료 스타일 비동기 프로그래밍 모델 (APM) 콜백 프록시 메소드 및 이벤트 기반 프록시 메소드가 생성되며이 메소드는 모두 Xamarin 애플 리케이션과 호환됩니다.

(참고 : /async 스위치를 생략하는 경우, SvcUtil.exe는 새로운 호환되지 않는 작업 기반의 프록시 방법을 생성합니다.)

중복이 : 우연히, 나는이 질문의 최신 중복에 대답 먼저 : How to use WCF services in .netstandard with Xamarin.Forms project?