Длина блока не совпадает с его дополнением Ошибка при получении ответа от SOAP - PullRequest
0 голосов
/ 19 июня 2020

У меня проблема, над которой я работал в течение 2 дней, и я не знаю, что делать дальше, надеюсь, кто-нибудь может помочь. Я делаю запрос в службу SOAP, и должен получить типичный ответ SOAP xml. Я использую SOAP UI для тестирования конечной точки, а в SOAP UI все работает нормально, я получаю ответ SOAP со всеми данными. Я добавил в свой проект ссылку на подключенную службу и импортировал файл WSDL, чтобы создать все классы, которые мне понадобятся.

Когда я делаю это программно в C#, я получаю следующую ошибку: «Длина блока не соответствует совпадать с его дополнением ". Это странно, потому что получаемый мной ответ не должен быть сжатым. Я не получаю файл gzip или что-то еще, просто обычный ответ SOAP XML. Это не проблема с сертификатом (он отлично загружается). Я даже подтвердил компании, которая управляет службой, что они получают и регистрируют мой запрос. Проблема в том, когда я получаю ответ. Я пишу этот код в библиотеке классов. Net Standard 2.0. Я даже попытался добавить в запрос заголовок идентификатора Content-Encoding. Ничего не работает.

    var client = new ServiceInterfaceClient();
    var request = new EbMtvnSvcReq();
    var r = new SendMessageResponse();

        using (new OperationContextScope(client.InnerChannel))
        {
            HttpRequestMessageProperty requestMessage = new HttpRequestMessageProperty();
            requestMessage.Headers["Content-Encoding"] = "identity";
            OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name]
                = requestMessage;

            r = client.SendMessageAsync(request).GetAwaiter().GetResult();
        }

return r;

Я предполагаю, что это как-то связано с тем, что для параметра DecompressionEnabled не установлено значение false. Это было свойством HttpsTransportBindingElement, но я думаю, что они взяли его. Net Core, поэтому я понятия не имею, как его установить, и поиск в Google не принес много пользы.

...