이 오류는 NetDataContractSerializer (NetDCS)가 사용되고 있지만 참조 어셈블리가 공유되지 않아 클라이언트에 포함되어 있기 때문에 발생합니다. 이 질문은 그것에 관한 것이 아닙니다.'NetDataContractSerializer에서 유형 .. 사용이 지원되지 않습니다.'- NetDataContractSerializer가 사용되는 이유는 무엇입니까?
이 질문은 NetDataContractSerializer가 사용되지 못하도록 막는 입니다. 또는 적어도 그것이 클라이언트에 의해 사용되는 이유를 알아내는 것.
왜 내가 그렇게를 구성하지 않은 경우 클라이언트 사용 NetDCS합니까?
기사/게시물에 따르면 나는 이것을 발견했습니다 is an explicit step; 수동으로이 프로젝트 또는 WCF 클라이언트에 대해이 기능을 사용하지 않았습니다 - 거기에 기계/프레임 워크 무시 어딘가에 나를 besting?
DCS (DataContractSerializer)를 강제로 사용할 수 있습니까?
그렇다면 이것을 유형별 또는 이름 공간 별 기준으로 강제 적용 할 수 있습니까? 제네릭 프레임 워크 "기본 유형"은 이미 참조 된 어셈블리에 있습니다. 이상적으로 NetDCS로 이러한 문제를 해결할 수는 있지만 NetDCS를 포기할 것입니다.
그렇지 않은 경우 응답/응답 XML을 monging하는 등의 더 유용한 조치가 있습니까?
은 (난 괜찮아 수동으로 필요한 계약 리졸버에 추가하고 난도질 생성 된 이름을 처리. 오전)
WCF 테스트 클라이언트 사용 (항상 DCS를 사용?) 나를 생각하게하는 "잘 작동" 현재 문제는 프로젝트의 서비스를 사용할 때 발생하는 NetDCS 직렬화 해제와 관련이 있습니다. WCF 테스트 클라이언트가 어떻게 작동하는지 오해 한 것 같습니다.
여기에 NetDCS 용 참조 어셈블리를 추가하여 해결할 수있는 오류 메시지가 있지만 이 아니기 때문에이 아니라고 생각합니다.)이 문제를 오해하지 않도록하십시오. 95 %가 클라이언트에서 의 비 직렬화에 있음을 확신합니다.. ... 메시지를 역 직렬화하는
'형식의 사용'을하는 동안
그리고 스택 요약 :포맷터에서 예외가 발생했습니다 ... '는 얻을 전용 컬렉션 NetDataContractSerializer 지원되지 않는. CollectionDataContractAttribute 특성 또는 SerializableAttribute 특성을 사용하여 형식을 표시하거나 속성에 설정기를 추가하십시오. '
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ref ProxyRpc rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService
WCF 클라이언트 구성이는 "간단한"기본 구성이며, 실행시에 행동을 수정하는 어떤 코드가 없습니다.
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_myServiceBinding" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="endPoint.svc"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_myServiceBinding"
contract="MyServive.IMyServiceEndPoint" name="BasicHttpBinding_serviceEndPoint" />
</client>
</system.serviceModel>
서비스 참조는 VS 2013에서 생성되고 프로젝트는 .NET 4를 대상으로합니다.서비스 참조 및 테스트 프로젝트가있는 프로젝트는 모두 간단한 클래스 라이브러리입니다. 그들은 IIS에서 호스팅되지 않습니다.
내 목표는 서버를 변경하면 클라이언트에 "수정"을 적용하는 것입니다. 또한 non-DCS 호환 시리얼 라이저로 전환하는 것은 현재로서는 불가능합니다. 클라이언트가 DCS를 사용하여 (WCF 테스트 클라이언트와 같은) 역 직렬화를 사용하고 클라이언트가 사용하도록 구성되지 않은 NetDCS를 사용하지 않으면 정말 좋을 것입니다. – user2864740