Переопределите метод GetWebRequest для переключения HTTP1.1 на 1.0.

Я использую Cisco AXL web service в .NET,

Проблема в том, что она не позволяет мне переопределить GetWebRequest способ изменить версию HTTP.

Я следую за этим документом, который дал мне следующий код для добавления http://www.cisco.com/en/US/docs/voice_ip_comm/cucm/devguide/9_1_1/axl.html

 protected override System.Net.WebRequest GetWebRequest(Uri uri)
 {
    System.Net.HttpWebRequest request = base.GetWebRequest(uri) as System.Net.HttpWebRequest;
    request.ProtocolVersion = System.Net.HttpVersion.Version10;
    return request;
 }

У меня есть этот код внутри класса, который расширяет SoapHttpClientProtocl, Я гуглил вокруг и нашел людей с такой же проблемой, но не дал четкого ответа, как ее решить. Я надеюсь, что у кого-то есть ответ здесь.

Спасибо!!

1 ответ

Я не совсем уверен, что это исправить, но вот что я сделал,

1.) Я добавил WSDL в качестве справочника по сервису, хотя я использовал wsdl.exe для компиляции API.

2.).NET Framework переключен на 4.5 вместо 4.0 профиля клиента.

3.) Поместите скомпилированный код в каталог проекта, хотя я сделал шаг 1.

4.) Не закомментировано много автоматически сгенерированного кода, который я точно не буду использовать, и отладчик жаловался на ошибку XmlSerializer.

5.) Включил "Просто мой код" из Сервис -> Параметры -> Отладка -> Общие.

6.) переместил часть кода, который Cisco хотел, чтобы мы добавили в отдельные классы, и сделал для них вызовы внутри автоматически сгенерированного кода.

Надеюсь, это поможет кому-нибудь когда-нибудь!!

Другие вопросы по тегам