powered by simpleCommunicator - 2.0.29     © 2024 Programmizd 02
Map
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Подключение к стороннему WCF по HTTPS
25 сообщений из 64, страница 1 из 3
Подключение к стороннему WCF по HTTPS
    #39647575
AlexV1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Есть сторонний сервис WCF, для меня он - черный ящик.
Известно, что он работает только по HTTPS

Задача: Подключиться к нему и дернуть метод listBrands

Делаю так. Создаю Windows Forms Application, в которое делаю Add Service Reference, ссылка https://api.forum-auto.ru/wsdl, он его видит (WSDL-читает), все OK, называю ссылку "ApiForumAuto"

Далее по кнопке:

string login = "xxxxx";
string password = "yyyyyyy";
string oem = "530053610";

ApiForumAuto.FA_API_PortTypeClient _client = new FA_API_PortTypeClient();

string err = "";
try
{
err = _client.listBrands(login, password, oem);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

Вываливает Exception с текстом " Error in deserializing body of reply message for operation listBrands "

Есть идеи?

Автоматически сформированный App.config таков:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="FA_API_Binding">
                    <security mode="Transport" />
                </binding>
                <binding name="FA_API_Binding1" />
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="https://api.forum-auto.ru/soap" binding="basicHttpBinding"
                bindingConfiguration="FA_API_Binding" contract="ApiForumAuto.FA_API_PortType"
                name="FA_API_Port" />
        </client>
    </system.serviceModel>
</configuration>
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39647613
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexV1,
Хозяин сервиса знает как авторизоваться.
Стек ошибки дайте.
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39647834
AlexV1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Server stack trace:
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)\r\n at System.ServiceModel.Dispatcher.OperationFormatter.DeserializeReply(Message message, Object[] parameters)
at System.ServiceModel.Dispatcher.ProxyOperationRuntime.AfterReply(ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& 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)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at SendRequestApp.ApiForumAuto.FA_API_PortType.listBrands(String login, String pass, String art)
at SendRequestApp.ApiForumAuto.FA_API_PortTypeClient.listBrands(String login, String pass, String art) in D:\\work\\TestProj\\SendRequestApp\\SendRequestApp\\Connected Services\\ApiForumAuto\\Reference.cs:line 141
at SendRequestApp.Form1.button3_Click(Object sender, EventArgs e) in D:\\work\\TestProj\\SendRequestApp\\SendRequestApp\\Form1.cs:line 345"
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39647848
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexV1 Задача: Подключиться к нему и дернуть метод дерните метод без возврата, void
?
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39647863
AlexV1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
без возврата, это как?
"err =" убрать, то есть просто вызвать так:

Код: c#
1.
_client.listBrands(login, password, oem);


Вызвал. Ошибка та же.
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39647880
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexV1,
И студия промолчала? )).
Дай прокси класс.
Там в авто ру сайте сервис наверно учебный или фейковый)).
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39647892
AlexV1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторИ студия промолчала? )).
Да
авторДай прокси класс.
А где ж его взять то? Все, что я накидал в своем проекте, есть в этом топике выше.
авторТам в авто ру сайте сервис наверно учебный или фейковый))
Не, им точно пользуются люди, причем успешно. И не авто.ру, а forum-auto.ru :-)
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39647902
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexV1Не, им точно пользуются люди, причем успешносчас попробую сам к нему)
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39647903
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexV1А где ж его взять то?в папке смотри файлы где ссылка. А не через студию.
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39647926
AlexV1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123 ,
Вот дока по этому сервису https://api.forum-auto.ru/docs/index.php
Может поможет.
Пример есть, но только на php, на .net нет.
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39647938
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexV1
Код: xml
1.
 binding="basicHttpBinding"


Это не https
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39648108
AlexV1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но это студия при добавлении Add Service Reference так прописала app.config, я конфиг не правил :-)

авторbinding="basicHttpBinding"
Это не https
Вот у меня и проблема, как правильно прописать конфиг.
Лучше даже не через конфиг задавать настройки, а через C#-код создавать endpoint, binding и т.д.
Буду благодарен, если поможете.
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39648129
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexV1,
Начни с простого.
- скрин галок в форме добавки ссылки сюда
- изменения конфига после добавки ссылки тоже сюда.
Все должно быть автоматом.
Если нет, то сервер фигово сконфигурирован.
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39648132
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexV1Лучше даже не через конфиг задавать настройки, а через C#-код создавать endpoint, binding и т.д.не люблю.
Только если баг исправляем.
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39648390
AlexV1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все получилось. Спасибо за помощь.

Дело оказалось не в HTTPS и не в версии библиотек.

Просто у провайдера криво сделан сервис: Развал с ошибкой десериализации исчез когда я догадался найти учетку другого клиента и под ней выполнить запрос - он успешно прошел! Доступ к учетке "xxxxx" похоже закрыт :-)

Но вот нельзя им было вернуть на клиента Код и дескрипшен ошибки вместо грубого развала....
Слов нет.
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39648414
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexV1Доступ к учетке "xxxxx" похоже закрыт :-)да. Криворукие программисты.
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39658688
AlexV1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело похоже не в HTTPS

Итак, что имеем:

При вызове метода listGoods, выдает

Exception: Error in deserializing body of reply message ...

InnerException: There is an error in XML document (2,467).

Окно Add Service Reference прилагаю
Также решил дернуть сервис с пом.утилиты SoapUI и Exception нет. Вроде XML вернул, что товары не найдены

[img="AddServiceRef.jpg"]

Пробовал также maxReceivedMessageSize задавать большим в App.confog у binding, безрезультатно, все равно выдает Error deserializing ...
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39658715
AlexV1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39658723
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexV1,

Открой окно классов и покажи методы сервиса с парамерами.
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39658815
AlexV1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,
это где такое окно?
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39658883
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexV1Petro123,
это где такое окно?
Ну ты хоть поиск используй.
Ctrl+Shift+C
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39659043
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexV1,

Забей. Не используй клиента WCF.
Проблема в том, что WSDL имеет другой формат, отличный от от принятого в MS.
Пример такой же проблемы
Делай вручную...

По Exception все верно, видишь, приходит faultcode, faultstring - обрабатывай.
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39659063
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refregНе используй клиента WCF.круто.
Мы используем и у нас все работает.
Всё устраивает.
Правда галочки не те что вверху на скрине.
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39659067
refreg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

а сервер какой?
...
Рейтинг: 0 / 0
Подключение к стороннему WCF по HTTPS
    #39659077
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
refregPetro123,

а сервер какой?win служба
...
Рейтинг: 0 / 0
25 сообщений из 64, страница 1 из 3
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / Подключение к стороннему WCF по HTTPS
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]