c# SOAP = Обязательно xml: отсутствует значение атрибута lang - PullRequest
0 голосов
/ 29 января 2020

Первый раз с использованием SOAP с C# (сделано много REST), и он не работает должным образом (исключения).

Я добавил подключенную службу, используя Правый щелчок > > Добавить >> Справочник по услугам и создал Подключенную службу из WDSL, как описано во многих руководствах. Я пытаюсь получить доступ к этой службе с помощью следующего кода:

try
{
    WSHttpBinding Binding = new WSHttpBinding();
    Binding.Security.Mode = SecurityMode.Transport;
    Binding.Name = "CompanyServiceSoap";

    EndpointAddress EndPoint = new EndpointAddress("https://www.URL_HERE.com/SOAP/CompanyService.php");
    CompanyServiceSoapClient client = new CompanyServiceSoapClient(Binding, EndPoint);
    client.ClientCredentials.UserName.UserName = "**Name**";
    client.ClientCredentials.UserName.Password = "**Password**";          

    CompanyMatch[] result = client.SearchByName("123XYZ", "XYZCompany");
}            
catch (Exception ex)
{
    Debug.WriteLine(ex);
}

Вызов client.SearchByName (строка UserSecret, строка CompanyName) приводит к исключению:

Message = "Сервер вернул недопустимую SOAP ошибку. Для получения дополнительной информации см. InnerException ."

InnerException = {"Обязательно xml: атрибут lang значение отсутствует. "}

В соответствии с примерами, предоставленными нам сервером, ожидаемое возвращение XML не включает тег xml: lang, и после многочисленных исследований в Google, похоже, нет окончательное решение для обработки этого. Хотя есть некоторые предположения, что они являются расплывчатыми и основаны на фрагментах без намека на то, где эти фрагменты должны применяться.

Есть ли конкретная c причина / исправление для этого?

Проект нацелен на VS2019. Net 4.7.1 и включает System. Net .Http v4.3.4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...