Работа с WCF в проекте iPhone / iPad - PullRequest
3 голосов
/ 18 июля 2011

Я пытаюсь заставить мое приложение Monotouch работать с сервисом WCF.Все работает нормально, но время от времени (10 - 30 вызовов службы) приложение зависает с SIGIL.Отладчик говорит именно это.Это происходит в случайных местах.

Другой сотрудник работает над приложением для iPhone, которое использует тот же сервис.Та же проблема, но более частая.

Все отлично работает при тестировании на симуляторе.

Если у кого-то была такая же проблема, пожалуйста, помогите.Будет ли использование службы asmx помочь?

Спасибо всем.

Приветствия

Ответы [ 2 ]

10 голосов
/ 25 июля 2011

WCF - это раздутый вариант на серверах с высоким трафиком в лучшие дни, использование SOAP в мобильном приложении - это пустая трата ресурсов, что следует считать плохой практикой.

ServiceStack - это гораздо более простой и быстрый вариант, который также позволяет вам получать доступ к тем же веб-службам с помощью строго типизированного Service-клиента без кода и кода, используя .NET самый быстрый JSON и JSV Текстовые сериализаторы.

Версии сервисных клиентов ServiceStack для MonoTouch доступны отдельно от: https://github.com/ServiceStack/ServiceStack/tree/master/release/latest/MonoTouch

И пример приложения MonoTouch, показывающий, как использовать, доступно здесь: https://github.com/ServiceStack/ServiceStack.Examples/tree/master/src/MonoTouch/RestFilesClient

2 голосов
/ 18 июля 2011

Немного ответа, но у меня была похожая проблема.Долгое время работал, чтобы мой клиентский код WCF для настольного компьютера работал на MonoTouch, только после того, как приложение умерло после 10 или около того вызовов SIGIL.

Символизация и анализ отчетов о сбоях показали, что приложение умирает где-то в WCFстек каждый раз.Однако я не мог разобрать проблему в тривиальном воспроизводимом примере.

В конце я использовал инфраструктуру ServiceStack (http://www.servicestack.net/), чтобы бросить простую конечную точку XML REST перед моей службой, и вызвал ее, используяпростые запросы WebClient и некоторые вспомогательные методы для отправки моих объектов в / из XML (DataContractSerializer был слишком медленным).

Если у вас есть доступ к стороне сервера, это может быть вашим самым простым подходом.

...