Работа с WCF в проекте iPhone/iPad

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

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

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

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

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

ура

2 ответа

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

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

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

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

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

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

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

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

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