Статус: Активный участник
Группы: Участники
Зарегистрирован: 06.05.2010(UTC) Сообщений: 103 Откуда: центр Вселенной
Сказал(а) «Спасибо»: 2 раз Поблагодарили: 1 раз в 1 постах
|
Добрый день! Пытаюсь подключиться к ЕСИА. Создаю клиента. Заполняю его тестовыми данными. Пытаюсь вызвать функцию registerCertificate() и получаю исключение: Цитата:Источник: System.Xml
Исключение: Возникла ошибка при отражении "MessageData".
Внутреннее исключение: Верхний элемент XML "MessageData" из пространства имен "http://smev.gosuslugi.ru/rev120315" ссылается на отдельные типы ConsoleApplication1.EsiaService.RegisterRequestMessageDataType и ConsoleApplication1.EsiaService.RegisterResponseMessageDataType. Используйте атрибуты XML, чтобы задать другое имя или пространство имен XML для элемента или типов.
Стек: в System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlReflectionMember[] xmlReflectionMembers, String ns, Boolean hasWrapperElement, Boolean rpc, Boolean openModel, RecursionLimiter limiter) в System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(String elementName, String ns, XmlReflectionMember[] members, Boolean hasWrapperElement, Boolean rpc, Boolean openModel, XmlMappingAccess access) в System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.XmlSerializerImporter.ImportMembersMapping(XmlName elementName, String ns, XmlReflectionMember[] members, Boolean hasWrapperElement, Boolean rpc, Boolean isEncoded, String mappingKey) в System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.OperationReflector.ImportMembersMapping(String elementName, String ns, XmlReflectionMember[] members, Boolean hasWrapperElement, Boolean rpc, String mappingKey) в System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.OperationReflector.LoadBodyMapping(MessageDescription message, String mappingKey, MessagePartDescriptionCollection& rpcEncodedTypedMessageBodyParts) в System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.OperationReflector.CreateMessageInfo(MessageDescription message, String key) в System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.OperationReflector.EnsureMessageInfos() в System.ServiceModel.Description.XmlSerializerOperationBehavior.Reflector.EnsureMessageInfos() в System.ServiceModel.Description.XmlSerializerOperationBehavior.CreateFormatter() в System.ServiceModel.Description.XmlSerializerOperationBehavior.System.ServiceModel.Description.IOperationBehavior.ApplyClientBehavior(OperationDescription description, ClientOperation proxy) в System.ServiceModel.Description.DispatcherBuilder.BindOperations(ContractDescription contract, ClientRuntime proxy, DispatchRuntime dispatch) в System.ServiceModel.Description.DispatcherBuilder.ApplyClientBehavior(ServiceEndpoint serviceEndpoint, ClientRuntime clientRuntime) в System.ServiceModel.Description.DispatcherBuilder.BuildProxyBehavior(ServiceEndpoint serviceEndpoint, BindingParameterCollection& parameters) в System.ServiceModel.Channels.ServiceChannelFactory.BuildChannelFactory(ServiceEndpoint serviceEndpoint, Boolean useActiveAutoClose) в System.ServiceModel.ChannelFactory.CreateFactory() в System.ServiceModel.ChannelFactory.OnOpening() в System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) в System.ServiceModel.ChannelFactory.EnsureOpened() в System.ServiceModel.ChannelFactory`1.CreateChannel(EndpointAddress address, Uri via) в System.ServiceModel.ChannelFactory`1.CreateChannel() в System.ServiceModel.ClientBase`1.CreateChannel() в System.ServiceModel.ClientBase`1.CreateChannelInternal() в System.ServiceModel.ClientBase`1.get_Channel() в ConsoleApplication1.EsiaService.RegistrationServicePortTypeClient.ConsoleApplication1.EsiaService.RegistrationServicePortType.registerCertificate(RegisterCertificate request) в D:\ConsoleApplication1\Service References\EsiaService\Reference.cs:строка 3345 в ConsoleApplication1.EsiaService.RegistrationServicePortTypeClient.registerCertificate(HeaderType& Header, MessageType& Message, MessageDataType& MessageData) в D:\ConsoleApplication1\Service References\EsiaService\Reference.cs:строка 3353 в ConsoleApplication1.Program.registerCertificate() в D:\ConsoleApplication1\Program.cs:строка 153 Добраться до MessageData и задать ему другое пространство имен, или выполнить другую манипуляцию, не представляется возможным. С другой стороны, в этом не должно быть необходимости, так как запрос, сформированный вручную, отправляется нормально. Думаю, что проблема связана непосредственно с VisualStudio. У кого-нибудь есть идеи, как можно побороть эту ошибку? Спасибо!
|