Ошибка при десериализации ответа

Есть сервис расположенный по адресу https://ххх.рф (основной), у него есть API с маршрутом до него — https://ххх.рф/api/TelegramBot/AcceptReplyMessageBot:

[HttpPost("AcceptReplyMessageBot")]
        public async Task<IActionResult> AcceptReplyMessageBot([FromBody] MessageData messageData)
        {
            Friend friend;
        ResponseMessageData responseMessage;
        string jsonResponse;
        string numberPhone = messageData.PhoneNumber != null ? ServicePhoneNumber.LeaveOnlyNumbers(messageData.PhoneNumber) : null;
        if (numberPhone != null && numberPhone.Length > 10)
        {
            friend = _serviceFriends.FindUserByPhoneNumber(numberPhone);
        }
        else
        {
            responseMessage = new ResponseMessageData { Status = "Invalid phone number" };
            return Ok(responseMessage);
        }

        string textQrCode;
        Byte[] byteCode = null;

        if (friend != null) {
            textQrCode = friend.TextQRcode;
        }
        else
        {
            responseMessage = new ResponseMessageData { Status = "Not found" };
            return Ok(responseMessage);
        }

        if(friend.ByteQrcode != null)
        {
            byteCode = friend.ByteQrcode;
        }

        if(textQrCode != null && byteCode != null)
        {
            responseMessage = new ResponseMessageData { PhoneNumber = friend.Telephone, TextMessage = textQrCode, ByteQrcode = byteCode };
        }
        else if (textQrCode != null)
        {
            responseMessage = new ResponseMessageData { PhoneNumber = friend.Telephone, TextMessage = textQrCode};
        }
        else
        {
            responseMessage = new ResponseMessageData { TextMessage = "Участнику с данным номером телефона не присвоен QR-код!" };
        }
        //jsonResponse = JsonSerializer.Serialize(responseMessage);

        return Ok(responseMessage);
        }

Есть другой микро сервис по адресу https://messanger.ххх.рф (TLmessenger), который отправляет на вышеописанный основной сервис POST запросы и обрабатывает от него ответы:

[HttpPost]
public async Task<IActionResult> Post([FromBody] Update update)
{

    if (update == null) return Ok();

    string responseMessage = "";
    if (message != null)
    {
        responseMessage = "Укажите номер в федеральном формате (+7хххххххххх)";

        if (message.ReplyToMessage != null)
        {
            string messageNumberPhone;
            switch (message.ReplyToMessage.Text)
            {
                case "Укажите номер в федеральном формате (+7хххххххххх)":
                    messageNumberPhone = ServicePhoneNumber.LeaveOnlyNumbers(message.Text);

                    if (messageNumberPhone.Length < 11 || messageNumberPhone.Length > 12)
                    {
                        await _telegramBotClient.SendTextMessageAsync(message.From.Id, "Номер указан в неверном формате. Ждем Ваш номер в федеральном формате (+7хххххххххх)", ParseMode.Default, replyMarkup: new ForceReplyMarkup { Selective = true });
                    }
                    else
                    {
                        MessageData requestMessage = _messageDataService.CreateMessageData(update, this.HttpContext.Request.Host.Value.ToString());

                        // Отправка запроса на API др. сервиса
                        string jsonRequest = JsonSerializer.Serialize(requestMessage);
                        string jsonResponseData = await PostRequestHttpAsync(url, jsonRequest);
                        ResponseMessageData responseData = JsonSerializer.Deserialize<ResponseMessageData>(jsonResponseData);

                        if (!responseData.Status.Equals("NotFound") && responseData.TextMessage != null)
                        {
                            string responseMessageFromDB = responseData.TextMessage;
                            await _telegramBotClient.SendTextMessageAsync(message.Chat.Id, responseMessageFromDB);
                        }
                        else {
                            string responseMessageFromDB = "Участник с данным номером телефона не найден!";
                            await _telegramBotClient.SendTextMessageAsync(message.Chat.Id, responseMessageFromDB);
                        }
                    }
                    break;

                case "Номер указан в неверном формате. Ждем Ваш номер в федеральном формате (+7хххххххххх)":
                    messageNumberPhone = ServicePhoneNumber.LeaveOnlyNumbers(message.Text);

                    if (messageNumberPhone.Length < 11 || messageNumberPhone.Length > 12)
                    {
                        await _telegramBotClient.SendTextMessageAsync(message.From.Id, "Номер указан в неверном формате. Ждем Ваш номер в федеральном формате (+7хххххххххх)", ParseMode.Default, replyMarkup: new ForceReplyMarkup { Selective = true });
                    }
                    else
                    {
                        MessageData requestMessage = _messageDataService.CreateMessageData(update, this.HttpContext.Request.Host.Value.ToString());
                        // Отправка запроса на API др. сервиса
                        string jsonRequest = JsonSerializer.Serialize(requestMessage);
                        string jsonResponseData = await PostRequestHttpAsync(url, jsonRequest);
                        ResponseMessageData responseData = JsonSerializer.Deserialize<ResponseMessageData>(jsonResponseData);

                        if (!responseData.Status.Equals("NotFound") && responseData.TextMessage != null)
                        {
                            string responseMessageFromDB = responseData.TextMessage;
                            await _telegramBotClient.SendTextMessageAsync(message.Chat.Id, responseMessageFromDB);
                        }
                        else
                        {
                            string responseMessageFromDB = "Участник с данным номером телефона не найден!";
                            await _telegramBotClient.SendTextMessageAsync(message.Chat.Id, responseMessageFromDB);
                        }
                    }
                    break;
            }
        }
        else
        {
            await _telegramBotClient.SendTextMessageAsync(message.From.Id, responseMessage, ParseMode.Default, replyMarkup: new ForceReplyMarkup { Selective = true });
        }
    }

    return Ok();
}

// Функция отправки запроса на API др. сервиса 
[ApiExplorerSettings(IgnoreApi = true)]
public async Task<string> PostRequestHttpAsync(string url, string json)
{
     using HttpContent content = new StringContent(json, Encoding.UTF8, "application/json");
        HttpClient httpClient = _clientFactory.CreateClient();
        httpClient.Timeout = TimeSpan.FromSeconds(120);
        using HttpResponseMessage response = await httpClient.PostAsync(url, content).ConfigureAwait(false);

        return await response.Content.ReadAsStringAsync().ConfigureAwait(false);
}

Пробовал отправлять на каждый из этих контроллеров обоих сервисов POST запросы через Postman — все отрабатывает норм.
Проверил работает ли 2-ой сервис (бот TLmessenger) отдельно без отправки запросов на основной — работает.
Добавил отправку запросов из бота TLmessenger на основной сервис — TLmessenger перестал работать.

Далее запустил первый (основной) сервис у себя на локально через ngrok, а 2-му (боту TLmessenger) прописал адрес url на который нужно слать запросы на 1-ый, который сформировал ngrok. Залил 2-ой (бота TLmessenger) на хостинг, в итоге TLmessenger сообщения из телеграмма получает, обрабатывает, отправляет POST запрос на основной сервис, основной сервис получает этот запрос отрабатывает и отправляет ответ, но TLmessenger не отвечает, по ходу не может обработать ответ.

Попробовал запустил первый (основной) сервис у себя на локально через ngrok. 2-ой (бота TLmessenger) запустил в режиме отладки на другом ПК и отправил запрос через swagger, в итоге TLmessenger сообщение из swagger получает, обрабатывает, отправляет POST запрос на основной сервис (запущенный на ngrok), основной сервис получает этот запрос отрабатывает и отправляет ответ, TLmessenger ответ получает, но когда пытается вернуть его

string jsonResponseData = await PostRequestHttpAsync(url, jsonRequest);
                ResponseMessageData responseData = JsonSerializer.Deserialize<ResponseMessageData>(jsonResponseData);
                string str = responseData.Status;
                return Ok(str);

получаю ошибку:

204 Undocumented Response headers  date: Thu30 Sep 2021 04:58:28 GMT   server: Microsoft-IIS/10.0   x-powered-by: ASP.NET

Не пойму в чем проблема.

Скрины ответа полученного от основного сервиса из отладчика:
введите сюда описание изображения

введите сюда описание изображения

Запустил оба сервиса на одном хосте, но на разных портах с помощью Kestral. При тестировании выдало следующею ошибку:

Microsoft.AspNetCore.HttpsPolicy.HttpsRedirectionMiddleware[3]
Failed to determine the https port for redirect.
System.Text.Json.JsonException: ‘T’ is an invalid start of a value. Path: $ | LineNumber: 0 | BytePositionInLine: 0.
—> System.Text.Json.JsonReaderException: ‘T’ is an invalid start of a value. LineNumber: 0 | BytePositionInLine: 0.
at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8Js onReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan1 bytes) at System.Text.Json.Utf8JsonReader.ConsumeValue(Byte marker) at System.Text.Json.Utf8JsonReader.ReadFirstToken(Byte first) at System.Text.Json.Utf8JsonReader.ReadSingleSegment() at System.Text.Json.Utf8JsonReader.Read() at System.Text.Json.Serialization.JsonConverter1.ReadCore(Utf8 JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
— End of inner exception stack trace —
at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, JsonReaderException ex)
at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8 JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
at System.Text.Json.JsonSerializer.ReadCore[TValue](JsonConverter jsonConverter, Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
at System.Text.Json.JsonSerializer.ReadCore[TValue](Utf8JsonReader& reader, Type returnType, JsonSerializerOptions options)
at System.Text.Json.JsonSerializer.Deserialize[TValue](String json, Type returnType, JsonSerializerOptions options)
at System.Text.Json.JsonSerializer.Deserialize[TValue](String json, JsonSerializerOptions options)
at TLmessanger.Controllers.TelegramListenerController.Post(Upda te update) in D:My_PROGRAMSTLmessangerControllersTelegramListenerContr oller.cs:line 179

в строке:

ResponseMessageData responseData = JsonSerializer.Deserialize<ResponseMessageData>(jsonResponseData);

С основного сервиса у меня уходит ответ следующего вида:

responseMessage {TLmessanger.Models.ResponseMessageData} TLmessanger.Models.ResponseMessageData
ByteQrcode null byte[]
PhoneNumber null string
Status «Not found» string
TextMessage null string
UserName null string

I’m writing console WCF-client for one WCF-WebService. When calling the service I get an error in deserializing body of request:

Error in deserializing body of reply message for operation ‘GetProfiles’

Agent Code:

string  userLogin = "root", userPassword = "root";
string ipaddress = "192.168.137.164";

HttpTransportBindingElement httpTransportBindingElement = new    HttpTransportBindingElement();
httpTransportBindingElement.AuthenticationScheme = AuthenticationSchemes.Digest;
httpTransportBindingElement.KeepAliveEnabled = false;
httpTransportBindingElement.MaxBufferSize = int.MaxValue;
httpTransportBindingElement.MaxBufferPoolSize = int.MaxValue;
httpTransportBindingElement.MaxReceivedMessageSize = int.MaxValue;

TextMessageEncodingBindingElement textMessageEncodingBindingElement = new TextMessageEncodingBindingElement();
textMessageEncodingBindingElement.MaxReadPoolSize = int.MaxValue;
textMessageEncodingBindingElement.MaxWritePoolSize = int.MaxValue;
textMessageEncodingBindingElement.ReaderQuotas.MaxDepth = 64;
textMessageEncodingBindingElement.ReaderQuotas.MaxBytesPerRead = int.MaxValue;
textMessageEncodingBindingElement.ReaderQuotas.MaxArrayLength = int.MaxValue;
textMessageEncodingBindingElement.ReaderQuotas.MaxNameTableCharCount = int.MaxValue;
textMessageEncodingBindingElement.ReaderQuotas.MaxStringContentLength = int.MaxValue;


CustomBinding binding = new CustomBinding(textMessageEncodingBindingElement, httpTransportBindingElement);

EndpointAddress MediaEndPointAddress = new EndpointAddress("http://" + ipaddress + ":80/onvif/services");

MediaClient mediaClient = new MediaClient(binding, MediaEndPointAddress);
mediaClient.ClientCredentials.UserName.UserName = userLogin;
mediaClient.ClientCredentials.UserName.Password = userPassword;

Profile[] profiles = mediaClient.GetProfiles(); // throw excpetion

I have already watched the requests and responses with a sniffer and it’s OK! The WebService has sent ‘200 OK’. If I have a small response from the WebService, there won’t be any errors and exceptions! I haven’t got WebService code. What should I do?

Stack trace:

<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent">
<System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system">
<EventID>131075</EventID>
<Type>3</Type>
<SubType Name="Error">0</SubType>
<Level>2</Level>
<TimeCreated SystemTime="2012-01-11T11:11:12.2185609Z" />
<Source Name="System.ServiceModel" />
<Correlation ActivityID="{550193ea-8569-40e6-b794-1a0eed69a1ba}" />
<Execution ProcessName="TestingConsole.vshost" ProcessID="6128" ThreadID="9" />
<Channel />
<Computer>WS-LSH</Computer>
</System>
<ApplicationData>
<TraceData>
<DataItem>
<TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord"    Severity="Error">
<TraceIdentifier>http://msdn.microsoft.com/ru-RU/library/System.ServiceModel.Diagnostics.ThrowingException.aspx</TraceIdentifier>
<Description>Throwing an exception.</Description>
<AppDomain>TestingConsole.vshost.exe</AppDomain>
<Exception>
<ExceptionType>System.ServiceModel.CommunicationException, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
<Message>Error in deserializing body of reply message for operation 'GetProfiles'.    </Message>
<StackTrace>
at System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader reader, MessageVersion version, XmlSerializer serializer, MessagePartDescription returnPart, MessagePartDescriptionCollection bodyParts, Object[] parameters, Boolean isRequest)
at System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader reader, MessageVersion version, String action, MessageDescription messageDescription, Object[] parameters, Boolean isRequest)
at System.ServiceModel.Dispatcher.OperationFormatter.DeserializeBodyContents(Message message, Object[] parameters, Boolean isRequest)
at System.ServiceModel.Dispatcher.OperationFormatter.DeserializeReply(Message message, Object[] parameters)
at System.ServiceModel.Dispatcher.ProxyOperationRuntime.AfterReply(ProxyRpc&amp; rpc)
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc&amp; 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(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&amp; msgData, Int32 type)
at TestingConsole.Onvif.Media.Media.GetProfiles(GetProfilesRequest request)
at TestingConsole.Onvif.Media.MediaClient.TestingConsole.Onvif.Media.Media.GetProfiles(GetProfilesRequest request)
at TestingConsole.Onvif.Media.MediaClient.GetProfiles()
at TestingConsole.Program.Main(String[] args)
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
</StackTrace>
<ExceptionString>System.ServiceModel.CommunicationException: Error in deserializing body of reply message for operation 'GetProfiles'. ---&gt; System.InvalidOperationException: There is an error in XML document (2, 6287). ---&gt; System.Xml.XmlException: The byte 0x03 is not valid at this location.  Line 2, position 6287.
    at System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String res, String arg1, String arg2, String arg3)
   at System.Xml.XmlExceptionHelper.ThrowInvalidXml(XmlDictionaryReader reader, Byte b)
   at System.Xml.XmlUTF8TextReader.Read()
   at System.Xml.XmlDictionaryReader.ReadString(Int32 maxStringContentLength)
   at System.Xml.XmlDictionaryReader.ReadString()
   at System.Xml.XmlBaseReader.ReadElementString()
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMedia.Read59_VideoSourceConfiguration(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMedia.Read150_Profile(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMedia.Read224_GetProfilesResponse()
   at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer73.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   --- End of inner exception stack trace ---
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader reader, MessageVersion version, XmlSerializer serializer, MessagePartDescription returnPart, MessagePartDescriptionCollection bodyParts, Object[] parameters, Boolean isRequest)
   --- End of inner exception stack trace ---</ExceptionString>
<InnerException>
<ExceptionType>System.InvalidOperationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
<Message>There is an error in XML document (2, 6287).</Message>
<StackTrace>
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
at     System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader reader, MessageVersion version, XmlSerializer serializer, MessagePartDescription returnPart, MessagePartDescriptionCollection bodyParts, Object[] parameters, Boolean isRequest)
</StackTrace>
<ExceptionString>System.InvalidOperationException: There is an error in XML document (2, 6287). ---&gt; System.Xml.XmlException: The byte 0x03 is not valid at this location.  Line 2, position 6287.
   at System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String res, String arg1, String arg2, String arg3)
   at System.Xml.XmlExceptionHelper.ThrowInvalidXml(XmlDictionaryReader reader, Byte b)
   at System.Xml.XmlUTF8TextReader.Read()
   at System.Xml.XmlDictionaryReader.ReadString(Int32 maxStringContentLength)
   at System.Xml.XmlDictionaryReader.ReadString()
   at System.Xml.XmlBaseReader.ReadElementString()
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMedia.Read59_VideoSourceConfiguration(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMedia.Read150_Profile(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMedia.Read224_GetProfilesResponse()
   at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer73.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   --- End of inner exception stack trace ---
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   at System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader reader, MessageVersion version, XmlSerializer serializer, MessagePartDescription returnPart, MessagePartDescriptionCollection bodyParts, Object[] parameters, Boolean isRequest)</ExceptionString>
<InnerException>
<ExceptionType>System.Xml.XmlException, System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
<Message>The byte 0x03 is not valid at this location.  Line 2, position 6287.</Message>
<StackTrace>
at System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String     res, String arg1, String arg2, String arg3)
at System.Xml.XmlExceptionHelper.ThrowInvalidXml(XmlDictionaryReader reader, Byte b)
at System.Xml.XmlUTF8TextReader.Read()
at System.Xml.XmlDictionaryReader.ReadString(Int32 maxStringContentLength)
at System.Xml.XmlDictionaryReader.ReadString()
at System.Xml.XmlBaseReader.ReadElementString()
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMedia.Read59_VideoSourceConfiguration(Boolean isNullable, Boolean checkType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMedia.Read150_Profile(Boolean isNullable, Boolean checkType)
at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMedia.Read224_GetProfilesResponse()
at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer73.Deserialize(XmlSerializationReader reader)
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
</StackTrace>
<ExceptionString>System.Xml.XmlException: The byte 0x03 is not valid at this location.  Line 2, position 6287.
   at System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String res, String arg1, String arg2, String arg3)
   at System.Xml.XmlExceptionHelper.ThrowInvalidXml(XmlDictionaryReader reader, Byte b)
   at System.Xml.XmlUTF8TextReader.Read()
   at System.Xml.XmlDictionaryReader.ReadString(Int32 maxStringContentLength)
   at System.Xml.XmlDictionaryReader.ReadString()
   at System.Xml.XmlBaseReader.ReadElementString()
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMedia.Read59_VideoSourceConfiguration(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMedia.Read150_Profile(Boolean isNullable, Boolean checkType)
   at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderMedia.Read224_GetProfilesResponse()
   at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer73.Deserialize(XmlSerializationReader reader)
   at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)</ExceptionString>
</InnerException>
</InnerException>
</Exception>
</TraceRecord>
</DataItem>
</TraceData>
</ApplicationData>

I rewrite my code. Now I have got:

    string soapRequest = "<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">" +
                                 "<s:Header>" +
                                 "</s:Header>" +
                                 "<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">" +
                                 "<GetProfiles xmlns="http://www.onvif.org/ver10/media/wsdl"/>" +
                                 "</s:Body>" +
                                 "</s:Envelope>";


XmlReader envelopeReader = XmlReader.Create(new StringReader(soapRequest));

Message requestMsg = Message.CreateMessage(envelopeReader, int.MaxValue, MessageVersion.Soap12);

Message responseMsg = null;

IChannelFactory<IRequestChannel> channelFactory = binding.BuildChannelFactory<IRequestChannel>();
channelFactory.Open();

IRequestChannel channel = channelFactory.CreateChannel(MediaEndPointAddress);
channel.Open();

responseMsg = channel.Request(requestMsg);
Console.WriteLine(responseMsg.ToString());

The last string return message «Error reading body: System.Xml.XmlException: ‘�’ contains invalid UTF8 bytes. …}».

WebService sends non-ut8 bytes, but points «UTF-8» in header.
What can I do?

Reply Message Body

HTTP/1.1 200 OK
Server: gSOAP/2.7
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 11591
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
            <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"                         xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"                       xmlns:xsd="http://www.w3.org/2001/XMLSchema"                        xmlns:wsa5="http://www.w3.org/2005/08/addressing"                       xmlns:xmime5="http://www.w3.org/2005/05/xmlmime"                        xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"                        xmlns:ter="http://www.onvif.org/ver10/error"                        xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"                      xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"                      xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#"                        xmlns:ds="http://www.w3.org/2000/09/xmldsig#"                       xmlns:tns1="http://www.onvif.org/ver10/topics"                      xmlns:ns1="http://www.onvif.org/ver20/analytics/wsdl"                       xmlns:ns2="http://www.onvif.org/ver10/schema"                       xmlns:ns3="http://docs.oasis-open.org/wsn/b-2"                      xmlns:ns4="http://docs.oasis-open.org/wsrf/bf-2"                        xmlns:ns5="http://docs.oasis-open.org/wsn/t-1"                      xmlns:ns6="http://www.onvif.org/ver10/device/wsdl"                      xmlns:ns7="http://www.onvif.org/ver10/events/wsdl"                      xmlns:ns9="http://docs.oasis-open.org/wsrf/r-2"                         xmlns:ns10="http://www.onvif.org/ver10/imaging/wsdl"                        xmlns:ns11="http://www.onvif.org/ver10/media/wsdl"                      xmlns:ns12="http://www.onvif.org/ver20/ptz/wsdl"                        xmlns:ns13="http://www.onvif.org/ver10/network/wsdl/"                       xmlns:ns14="http://schemas.xmlsoap.org/ws/2005/04/discovery"                        xmlns:ns16="http://www.onvif.org/ver10/analytics/wsdl/RuleEngineBinding"                        xmlns:ns17="http://www.onvif.org/ver10/analytics/wsdl/AnalyticsEngineBinding"                       xmlns:ns18="http://www.onvif.org/ver10/events/wsdl/PullPointSubscriptionBinding"                        xmlns:ns19="http://www.onvif.org/ver10/events/wsdl/EventBinding"                        xmlns:ns20="http://www.onvif.org/ver10/events/wsdl/SubscriptionManagerBinding"                      xmlns:ns21="http://www.onvif.org/ver10/events/wsdl/NotificationProducerBinding"                         xmlns:ns22="http://www.onvif.org/ver10/events/wsdl/NotificationConsumerBinding"                         xmlns:ns23="http://www.onvif.org/ver10/events/wsdl/PullPointBinding"                        xmlns:ns24="http://www.onvif.org/ver10/events/wsdl/CreatePullPointBinding"                      xmlns:ns25="http://www.onvif.org/ver10/events/wsdl/PausableSubscriptionManagerBinding"                      xmlns:ns26="http://www.onvif.org/ver10/network/wsdl/RemoteDiscoveryBinding"                         xmlns:ns27="http://www.onvif.org/ver10/network/wsdl/DiscoveryLookupBinding"                         xmlns:ns28="http://www.onvif.org/ver10/events/wsdl/EventPortType"                       xmlns:ns29="http://www.3svision.com.tw/2009/event/topics">                      <SOAP-ENV:Header></SOAP-ENV:Header><SOAP-ENV:Body><ns11:GetProfilesResponse><ns11:Profiles token="Main_h264" fixed="true"><ns2:Name>Main h264</ns2:Name><ns2:VideoSourceConfiguration token="0"><ns2:Name>user0</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:SourceToken>0</ns2:SourceToken><Bounds xmlns="http://www.onvif.org/ver10/schema" height="720" width="1280" y="0" x="0"></Bounds></ns2:VideoSourceConfiguration><ns2:AudioSourceConfiguration token="0"><ns2:Name>user0</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:SourceToken>0</ns2:SourceToken></ns2:AudioSourceConfiguration><ns2:VideoEncoderConfiguration token="Main_h264"><ns2:Name>Main h264</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:Encoding>H264</ns2:Encoding><ns2:Resolution><ns2:Width>1280</ns2:Width><ns2:Height>720</ns2:Height></ns2:Resolution><ns2:Quality>60</ns2:Quality><ns2:RateControl><ns2:FrameRateLimit>30</ns2:FrameRateLimit><ns2:EncodingInterval>15</ns2:EncodingInterval><ns2:BitrateLimit>3072</ns2:BitrateLimit></ns2:RateControl><ns2:H264><ns2:GovLength>0</ns2:GovLength><ns2:H264Profile>Baseline</ns2:H264Profile></ns2:H264><ns2:Multicast><ns2:Address><ns2:Type>IPv4</ns2:Type><ns2:IPv4Address>0.0.0.0</ns2:IPv4Address></ns2:Address><ns2:Port>0</ns2:Port><ns2:TTL>5</ns2:TTL><ns2:AutoStart>false</ns2:AutoStart></ns2:Multicast><ns2:SessionTimeout>PT0S</ns2:SessionTimeout></ns2:VideoEncoderConfiguration><ns2:AudioEncoderConfiguration token="0"><ns2:Name>user0</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:Encoding>G7Ю11</ns2:Encoding><ns2:Bitrate>64000</ns2:Bitrate><ns2:SampleRate>8000</ns2:SampleRate><ns2:Multicast><ns2:Address><ns2:Type>IPv4</ns2:Type><ns2:IPv4Address>0.0.0.0</ns2:IPv4Address></ns2:Address><ns2:Port>0</ns2:Port><ns2:TTL>5</ns2:TTL><ns2:AutoStart>false</ns2:AutoStart></ns2:Multicast><ns2:SessionTimeout>PT0S</ns2:SessionTimeout></ns2:AudioEncoderConfiguration></ns11:Profiles><ns11:Profiles token="Sub_h264" fixed="true"><ns2:Name>Sub h264</ns2:Name><ns2:VideoSourceConfiguration token="1"><ns2:Name>user1</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:SourceToken>0</ns2:SourceToken><Bounds xmlns="http://www.onvif.org/ver10/schema" height="720" width="1280" y="0" x="0"></Bounds></ns2:VideoSourceConfiguration><ns2:AudioSourceConfiguration token="0"><ns2:Name>user0</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:SourceToken>0</ns2:SourceToken></ns2:AudioSourceConfiguration><ns2:VideoEncoderConfiguration token="Sub_h264"><ns2:Name>Sub h264</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:Encoding>H264</ns2:Encoding><ns2:Resolution><ns2:Width>640</ns2:Width><ns2:Height>352</ns2:Height></ns2:Resolution><ns2:Quality>70</ns2:Quality><ns2:RateControl><ns2:FrameRateLimit>30</ns2:FrameRateLimit><ns2:EncodingInterval>15</ns2:EncodingInterval><ns2:BitrateLimit>3072</ns2:BitrateLimit></ns2:RateControl><ns2:H264><ns2:GovLength>0</ns2:GovLength><ns2:H264Profile>Baseline</ns2:H264Profile></ns2:H264><ns2:Multicast><ns2:Address><ns2:Type>IPv4</ns2:Type><ns2:IPv4Address>0.0.0.0</ns2:IPv4Address></ns2:Address><ns2:Port>0</ns2:Port><ns2:TTL>5</ns2:TTL><ns2:AutoStart>false</ns2:AutoStart></ns2:Multicast><ns2:SessionTimeout>PT0S</ns2:SessionTimeout></ns2:VideoEncoderConfiguration><ns2:AudioEncoderConfiguration token="0"><ns2:Name>user0</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:Encoding>G711</ns2:Encoding><ns2:Bitrate>64000</ns2:Bitrate><ns2:SampleRate>8000</ns2:SampleRate><ns2:Multicast><ns2:Address><ns2:Type>IPv4</ns2:Type><ns2:IPv4Address>0.0.0.0</ns2:IPv4Address></ns2:Address><ns2:Port>0</ns2:Port><ns2:TTL>5</ns2:TTL><ns2:AutoStart>false</ns2:AutoStart></ns2:Multicast><ns2:SessionTimeout>PT0S</ns2:SessionTimeout></ns2:AudioEncoderConfiguration></ns11:Profiles><ns11:Profiles token="Motion_jpeg" fixed="true"><ns2:Name>Motion jpeg</ns2:Name><ns2:VideoSourceConfiguration token="2"><ns2:Name>user2</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:SourceToken>0</ns2:SourceToken><Bounds xmlns="http://www.onvif.org/ver10/schema" height="720" width="1280" y="0" x="0"></Bounds></ns2:VideoSourceConfiguration><ns2:AudioSourceConfiguration token="0"><ns2:Name>user0</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:SourceToken>0</ns2:SourceToken></ns2:AudioSourceConfiguration><ns2:VideoEncoderConfiguration token="Motion_jpeg"><ns2:Name>Motion jpeg</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:Encoding>JPEG</ns2:Encoding><ns2:Resolution><ns2:Width>1280</ns2:Width><ns2:Height>720</ns2:Height></ns2:Resolution><ns2:QualitЭy>70</ns2:Quality><ns2:RateControl><ns2:FrameRateLimit>15</ns2:FrameRateLimit><ns2:EncodingInterval>15</ns2:EncodingInterval><ns2:BitrateLimit>3072</ns2:BitrateLimit></ns2:RateControl><ns2:Multicast><ns2:Address><ns2:Type>IPv4</ns2:Type><ns2:IPv4Address>0.0.0.0</ns2:IPv4Address></ns2:Address><ns2:Port>0</ns2:Port><ns2:TTL>5</ns2:TTL><ns2:AutoStart>false</ns2:AutoStart></ns2:Multicast><ns2:SessionTimeout>PT0S</ns2:SessionTimeout></ns2:VideoEncoderConfiguration><ns2:AudioEncoderConfiguration token="0"><ns2:Name>user0</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:Encoding>G711</ns2:Encoding><ns2:Bitrate>64000</ns2:Bitrate><ns2:SampleRate>8000</ns2:SampleRate><ns2:Multicast><ns2:Address><ns2:Type>IPv4</ns2:Type><ns2:IPv4Address>0.0.0.0</ns2:IPv4Address></ns2:Address><ns2:Port>0</ns2:Port><ns2:TTL>5</ns2:TTL><ns2:AutoStart>false</ns2:AutoStart></ns2:Multicast><ns2:SessionTimeout>PT0S</ns2:SessionTimeout></ns2:AudioEncoderConfiguration></ns11:Profiles><ns11:Profiles token="mc_test" fixed="false"><ns2:Name>mc_test</ns2:Name><ns2:VideoSourceConfiguration token="2"><ns2:Name>Hе</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:SourceToken>0</ns2:SourceToken><Bounds xmlns="http://www.onvif.org/ver10/schema" height="720" width="1280" y="0" x="0"></Bounds></ns2:VideoSourceConfiguration><ns2:AudioSourceConfiguration token="0"><ns2:Name>user0</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:SourceToken>0</ns2:SourceToken></ns2:AudioSourceConfiguration><ns2:VideoEncoderConfiguration token="Motion_jpeg"><ns2:Name>јч
@јч
@peg</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:Encoding>JPEG</ns2:Encoding><ns2:Resolution><ns2:Width>1280</ns2:Width><ns2:Height>720</ns2:Height></ns2:Resolution><ns2:Quality>70</ns2:Quality><ns2:RateControl><ns2:FrameRateLimit>15</ns2:FrameRateLimit><ns2:EncodingInterval>15</ns2:EncodingInterval><ns2:BitrateLimit>3072</ns2:BitrateLimit></ns2:RateControl><ns2:Multicast><ns2:Address><ns2:Type>IPv4</ns2:Type><ns2:IPv4Address>0.0.0.0</ns2:IPv4Address></ns2:Address><ns2:Port>0</ns2:Port><ns2:TTL>5</ns2:TTL><ns2:AutoStart>false</ns2:AutoStart></ns2:Multicast><ns2:SessionTimeout>PT0S</ns2:SessionTimeout></ns2:VideoEncoderConfiguration><ns2:AudioEncoderConfiguration token="0"><ns2:Name>user0</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:Encoding>G711</ns2:Encoding><ns2:Bitrate>64000</ns2:Bitrate><ns2:SampleRate>8000</ns2:SampleRate><ns2:Multicast><ns2:Address><ns2:Type>IPv4</ns2:Type><ns2:IPv4Address>0.0.0.0</ns2:IPv4Address></ns2:Address><ns2:Port>0</ns2:Port><ns2:TTL>5</ns2:TTL><ns2:AutoStart>false</ns2:AutoStart></ns2:Multicast><ns2:SessionTimeout>PT0S</ns2:SessionTimeout></ns2:AudioEncoderConfiguration></ns11:Profiles><ns11:Profiles token="MACROSCOP" fixed="false"><ns2:Name>MACROSCOP</ns2:Name><ns2:VideoSourceConfiguration token="2"><ns2:Name>Hе</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:SourceToken>0</ns2:SourceToken><Bounds xmlns="http://www.onvif.org/ver10/schema" heightЮ="720" width="1280" y="0" x="0"></Bounds></ns2:VideoSourceConfiguration><ns2:AudioSourceConfiguration token="0"><ns2:Name>user0</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:SourceToken>0</ns2:SourceToken></ns2:AudioSourceConfiguration><ns2:VideoEncoderConfiguration token="Motion_jpeg"><ns2:Name>јч
@јч
@peg</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:Encoding>JPEG</ns2:Encoding><ns2:Resolution><ns2:Width>1280</ns2:Width><ns2:Height>720</ns2:Height></ns2:Resolution><ns2:Quality>70</ns2:Quality><ns2:RateControl><ns2:FrameRateLimit>15</ns2:FrameRateLimit><ns2:EncodingInterval>15</ns2:EncodingInterval><ns2:BitrateLimit>3072</ns2:BitrateLimit></ns2:RateControl><ns2:Multicast><ns2:Address><ns2:Type>IPv4</ns2:Type><ns2:IPv4Address>0.0.0.0</ns2:IPv4Address></ns2:Address><ns2:Port>0</ns2:Port><ns2:TTL>5</ns2:TTL><ns2:AutoStart>false</ns2:AutoStart></ns2:Multicast><ns2:SessionTimeout>PT0S</ns2:SessionTimeout></ns2:VideoEncoderConfiguration><ns2:AudioEncoderConfiguration token="0"><ns2:Name>user0</ns2:Name><ns2:UseCount>0</ns2:UseCount><ns2:Encoding>G711</ns2:Encoding><ns2:Bitrate>64000</ns2:Bitrate><ns2:SampleRate>8000</ns2:SampleRate><ns2:Multicast><ns2:Address><ns2:Type>IPv4</ns2:Type><ns2:IPv4Address>0.0.0.0</ns2:IPv4Address></ns2:Address><ns2:Port>0</ns2:Port><ns2:TTL>5</ns2:TTL><ns2:AutoStart>false</ns2:AutoStart></ns2:Multicast><ns2:SessionTimeout>PT0S</ns2:SessionTimeout></ns2:AudioEncoderConfiguration></ns11:Profiles></ns11:GetProfilesResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>

Ошибка при десериализации ответа.
 XML


Индекс форума
» Компонент МЕРКУРИЙ
Автор Сообщение

[Post New]20/12/2019 12:09:19

    

Тема: Ошибка при десериализации ответа.

[Up]

Гасан

Зарегистрирован: 11/11/2017 13:13:22
Сообщений: 69

Оффлайн



Ошибка при десериализации ответа модуль выдает ошибку. У кого то было такая ошибка или кто знает ?


[Post New]20/12/2019 12:23:06

    

Тема: Ошибка при десериализации ответа.

[Up]

egais2018

Зарегистрирован: 08/06/2018 15:12:57
Сообщений: 282

Оффлайн



Это точно кто знает такой ошибка странный. В понятно какой модуле ее вижу. Было у кого-то? XD


[Post New]20/12/2019 12:26:08

    

Тема: Re:Ошибка при десериализации ответа.

[Up]

Гасан

Зарегистрирован: 11/11/2017 13:13:22
Сообщений: 69

Оффлайн



В модуле меркурий начало писать


[Post New]20/12/2019 12:38:21

    

Тема: Re:Ошибка при десериализации ответа.

[Up]

Yoreg07

Зарегистрирован: 21/07/2016 06:41:02
Сообщений: 572

Оффлайн



Ну не знаю … у меня всё работает


[Post New]21/12/2019 15:33:43

    

Тема: Ошибка при десериализации ответа.

[Up]

hawksib

[Avatar]

Зарегистрирован: 04/08/2017 08:44:20
Сообщений: 179

Оффлайн


Гасан wrote:Ошибка при десериализации ответа модуль выдает ошибку. У кого то было такая ошибка или кто знает ?

у меня всякие разные ошибки были, я всё исправил


 


Индекс форума
» Компонент МЕРКУРИЙ

Перейти: 

 


WCF Ошибка при десериализации ответа операции

От:

Serginio1

СССР

https://habrahabr.ru/users/serginio1/topics/
Дата:  13.01.16 06:32
Оценка:

Есть вэб сервис https://apitest.merlion.com/rl/mlservice3?wsdl (стиль rpc/literal)
При создании клиента через наследника ClientBase, то десериализатор для всех методов возвращающих массив, почему то генерит десериалитацию только для одного типа массива. И соответственно ошибка приведения.
Если объявить, что возвращается object то возвращается этот же массив, только со значениями свойств с null

http://stackoverflow.com/questions/34416786/soap-service-on-java-returns-incorrect-types-in-response/34686578
http://www.forum.mista.ru/topic.php?id=760061#53

Если же сделать вместо ссылки на службу, сделать веб ссылку использующую технологию веб служб .Net FrameWork 2.0
То работает
http://www.forum.mista.ru/topic.php?id=760061#66

при этом используется наследник SoapHttpClientProtocol

Вопрос это баг или фича?
Не знаю можно ли открытую выдавать логин пароль, но вышлю желающим. Вроде это тестовый сервис.

и солнце б утром не вставало, когда бы не было меня


Re: WCF Ошибка при десериализации ответа операции

От:

Михаил Романов

Удмуртия

https://mihailromanov.wordpress.com/
Дата:  13.01.16 07:17
Оценка:

Здравствуйте, Serginio1, Вы писали:

S>При создании клиента через наследника ClientBase, то десериализатор для всех методов возвращающих массив, почему то генерит десериалитацию только для одного типа массива. И соответственно ошибка приведения.

Немного не понял.
Вы генерируете proxy-классы по метаданным и у вас везде используется один и тот же тип массива.
Или ошибка появляется во время работы: т.е. сгенерированные классы верны, но приходит не тот тип?

Если второе, то давайте глянем на запрос и ответ для какого-нибудь метода, на котором идет ошибка. Можно посмотреть Fiddler-ом или включить логгирование сообщений средствами WCF.


Re[2]: WCF Ошибка при десериализации ответа операции

От:

Serginio1

СССР

https://habrahabr.ru/users/serginio1/topics/
Дата:  13.01.16 07:40
Оценка:

Здравствуйте, Михаил Романов, Вы писали:

МР>Здравствуйте, Serginio1, Вы писали:


S>>При создании клиента через наследника ClientBase, то десериализатор для всех методов возвращающих массив, почему то генерит десериалитацию только для одного типа массива. И соответственно ошибка приведения.


МР>Немного не понял.

МР>Вы генерируете proxy-классы по метаданным и у вас везде используется один и тот же тип массива.
МР>Или ошибка появляется во время работы: т.е. сгенерированные классы верны, но приходит не тот тип?

МР>Если второе, то давайте глянем на запрос и ответ для какого-нибудь метода, на котором идет ошибка. Можно посмотреть Fiddler-ом или включить логгирование сообщений средствами WCF.

Нет прокси генерит нормальные классы

public partial class getItemsResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="", Order=0)]
        [System.Xml.Serialization.XmlArrayAttribute("return")]
        [System.Xml.Serialization.XmlArrayItemAttribute("item", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)]
        public WpfApplication1.ServiceReference5.ItemsResult[] @return;

Но вот при десериализации ответ приводится к

public partial class getCatalogResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="", Order=0)]
        [System.Xml.Serialization.XmlArrayAttribute("return")]
        [System.Xml.Serialization.XmlArrayItemAttribute("item", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)]
        public WpfApplication1.ServiceReference5.CatalogResult[] @return;

То есть все массивы десериализуются в CatalogResult[]
Понятно, что где то ошибка в System.ServiceModel.Dispatcher.XmlSerializerOperationFormatte где неправильно реализован десериализатор

и солнце б утром не вставало, когда бы не было меня


Re[2]: WCF Ошибка при десериализации ответа операции

От:

Serginio1

СССР

https://habrahabr.ru/users/serginio1/topics/
Дата:  13.01.16 07:46
Оценка:

Здравствуйте, Михаил Романов, Вы писали:

МР>Или ошибка появляется во время работы: т.е. сгенерированные классы верны, но приходит не тот тип?


МР>Если второе, то давайте глянем на запрос и ответ для какого-нибудь метода, на котором идет ошибка. Можно посмотреть Fiddler-ом или включить логгирование сообщений средствами WCF.

Я могу выслать проект. Ответы приходят нормально. Они прекрасно десериализуются наследником SoapHttpClientProtocol
Но вот в BaseClient ошибка. И это кстати не в первый раз где приходится использовать SoapHttpClientProtocol

и солнце б утром не вставало, когда бы не было меня


Re[3]: WCF Ошибка при десериализации ответа операции

От:

Serginio1

СССР

https://habrahabr.ru/users/serginio1/topics/
Дата:  13.01.16 07:52
Оценка:

Здравствуйте, Serginio1, Вы писали:

S>Здравствуйте, Михаил Романов, Вы писали:


МР>>Здравствуйте, Serginio1, Вы писали:


S>>>При создании клиента через наследника ClientBase, то десериализатор для всех методов возвращающих массив, почему то генерит десериалитацию только для одного типа массива. И соответственно ошибка приведения.


МР>>Немного не понял.

МР>>Вы генерируете proxy-классы по метаданным и у вас везде используется один и тот же тип массива.
МР>>Или ошибка появляется во время работы: т.е. сгенерированные классы верны, но приходит не тот тип?

МР>>Если второе, то давайте глянем на запрос и ответ для какого-нибудь метода, на котором идет ошибка. Можно посмотреть Fiddler-ом или включить логгирование сообщений средствами WCF.


S> Нет прокси генерит нормальные классы

S>

S>public partial class getItemsResponse {
        
S>        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="", Order=0)]
S>        [System.Xml.Serialization.XmlArrayAttribute("return")]
S>        [System.Xml.Serialization.XmlArrayItemAttribute("item", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)]
S>        public WpfApplication1.ServiceReference5.ItemsResult[] @return;
S>



S> Но вот при десериализации ответ приводится к


S>

S>public partial class getCatalogResponse {
        
S>        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="", Order=0)]
S>        [System.Xml.Serialization.XmlArrayAttribute("return")]
S>        [System.Xml.Serialization.XmlArrayItemAttribute("item", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)]
S>        public WpfApplication1.ServiceReference5.CatalogResult[] @return;
S>



S>То есть все массивы десериализуются в CatalogResult[]

S> Понятно, что где то ошибка в System.ServiceModel.Dispatcher.XmlSerializerOperationFormatte где неправильно реализован десериализатор

Это я уже сам добавил XmlArrayAttribute(«return»)]
в оригинале он пустой

public partial class getItemsResponse {
        
        [System.ServiceModel.MessageBodyMemberAttribute(Namespace="", Order=0)]
        [System.Xml.Serialization.XmlArrayAttribute()]
        [System.Xml.Serialization.XmlArrayItemAttribute("item", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)]
        public WpfApplication1.ServiceReference5.ItemsResult[] @return;

А вот генерация для SoapHttpClientProtocol

[System.Web.Services.Protocols.SoapRpcMethodAttribute("https://apitest.merlion.com/rl/mlservice3#getItems", RequestNamespace="https://apitest.merlion.com/rl/mlservice3", ResponseNamespace="https://apitest.merlion.com/rl/mlservice3", Use=System.Web.Services.Description.SoapBindingUse.Literal)]
        [return: System.Xml.Serialization.XmlArrayAttribute("return")]
        [return: System.Xml.Serialization.XmlArrayItemAttribute("item", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)]
        public ItemsResult[] getItems(string cat_id, [System.Xml.Serialization.XmlArrayItemAttribute("item", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable=false)] string[] item_id, string shipment_method, int page, int rows_on_page, string last_time_change) {
            object[] results = this.Invoke("getItems", new object[] {
                        cat_id,
                        item_id,
                        shipment_method,
                        page,
                        rows_on_page,
                        last_time_change});
            return ((ItemsResult[])(results[0]));
        }

и солнце б утром не вставало, когда бы не было меня


Re[3]: WCF Ошибка при десериализации ответа операции

От:

Михаил Романов

Удмуртия

https://mihailromanov.wordpress.com/
Дата:  13.01.16 08:43
Оценка:

Здравствуйте, Serginio1, Вы писали:

S> Я могу выслать проект. Ответы приходят нормально. Они прекрасно десериализуются наследником SoapHttpClientProtocol

Увы, пока не смогу посвятить этому время — точно не ранее середины следующей недели. Если вам терпит, то могу попытаться на следующей неделе посмотреть.


Re[4]: WCF Ошибка при десериализации ответа операции

От:

Serginio1

СССР

https://habrahabr.ru/users/serginio1/topics/
Дата:  13.01.16 08:49
Оценка:

Здравствуйте, Михаил Романов, Вы писали:

МР>Здравствуйте, Serginio1, Вы писали:


S>> Я могу выслать проект. Ответы приходят нормально. Они прекрасно десериализуются наследником SoapHttpClientProtocol

МР>Увы, пока не смогу посвятить этому время — точно не ранее середины следующей недели. Если вам терпит, то могу попытаться на следующей неделе посмотреть.
Это я делал даже не для себя. Просто хотелось бы испльзовать BaseClient
Если, что тестовый проект http://files.rsdn.ru/19608/WpfApplication1.zip
Там кнопочки с названием Мерлион

и солнце б утром не вставало, когда бы не было меня

Подождите ...

Wait...

  • Переместить
  • Удалить
  • Выделить ветку

Пока на собственное сообщение не было ответов, его можно удалить.

  1. На главную

  2. How

  3. Ошибка десериализации тела сообщения запроса на операцию

Ошибка десериализации тела сообщения запроса на операцию

  • 2023
  • Редактор:
    Christopher Sullivan |
    Написать мне

Я пишу адаптер службы для использования веб-служб, размещенных другим поставщиком (Pega). Я не могу сменить эту услугу. Когда я вызываю метод, я получаю сообщение об ошибке:

«Ошибка десериализации тела сообщения запроса на операцию»

Я пробовал увеличить maxStringContentLength и все такое. Ничего не получилось. Изучая ответ XML, я вижу пустые значения для нескольких переменных типа long и int, я считаю, что это причина.

Есть ли какое-нибудь исправление для этого?

  • 1 Выполняется десериализация. Извините за автокоррекцию.
  • Эта ссылка может быть вам полезна marcipsen.wordpress.com/2009/02/25/…
  • Спасибо, Картик, но я уже пытался изменить настройки в app.config. Как я уже упоминал, я считаю, что причиной могут быть пустые значения для нескольких переменных типа long и int в ответном XML. Требуется исправление для этого со стороны клиента.
  • Есть ли внутреннее исключение с более подробной информацией?
  • Единственное, что имеет смысл: в System.Number.ParseInt64 (значение String, параметры NumberStyles, NumberFormatInfo numfmt) в System.Xml.XmlConvert.ToInt64 (String s)

Это было решено после удаления пустых тегов со стороны службы. На стороне клиента .Net решение не найдено.

  • У меня конец службы настроен на отправку 0 вместо нулевого элемента.
  • Спасибо. Я исправил свою проблему двумя вещами: 1) изменил тип возвращаемого значения операции с простого строкового типа на пользовательский тип класса, украшенный DataContractAttribute. 2) Я удалил HttpWatch 7.0.22, который мешает вызову jQuery. Именно HttpWatch заблокировал отправку аргумента операции.
  • @PAVITRA — У меня та же проблема, и я не мог понять, как решить, следуя вашим инструкциям: как вы на самом деле это сделали? Какие пустые теги? Из какого файла?
  • В ответ у меня были пустые значения для нескольких полей типа long и int, не допускающих значения NULL. Обычно этого не должно происходить. При попытке десериализации этого ответа возникла ошибка. Не удалось найти исправления от .NET для этого. Поэтому моим последним вариантом было изменить стороннюю службу. Я изменил его, чтобы отправлять 0 вместо пустых тегов для длинных полей int.

Я решил эту проблему, изменив формат одного из параметров запроса. Дата была передана в виде текста, и службе не удалось проанализировать предоставленный формат даты.

Не уверен, почему служба ожидала дату в виде строки, но в то время это выходило за рамки.

Понравилась статья? Поделить с друзьями:

Не пропустите эти материалы по теме:

  • Яндекс еда ошибка привязки карты
  • Ошибка при делении на ноль python
  • Ошибка при делении на ноль java
  • Ошибка при декомпиляции apk
  • Ошибка при декодировании заполнения oaep windows admin center

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии