2012-05-07 6 views
1

Я создал клиента WCF на Monotouch с Silverlight SLSvcUtil.exe Инструмент, подобный http://docs.xamarin.com/ios/tutorials/Working_with_Web_Services#Consuming_WCF_Services.Ошибка Monotouch/WCF на оборудовании iPhone

на тренажере все работает нормально, но когда я начал его на iPhone 4S я получил ошибку:

Попытки JIT метода компиляции «(обертка делегат-начало-Invoke): begin_invoke_IAsyncResult_ этого __TimeSpan_AsyncCallback_object (System .TimeSpan, System.AsyncCallback, object) 'во время работы с -aot-only.

Любые идеи?

+0

Thank's! Я просто решил проблему с копированием справки службы из проекта Visual Studio и перезаписал Сервис и канал службы, например: http: //stackoverflow.com/questions/10054581/monotouch-wcf-how-to-consume-the-wcf -SERVICE-без SvcUtil –

ответ

1

Я вызвал несколько сервисов wcf из монотота без каких-либо проблем, так что это можно сделать.

Ошибка jit в monotouch обычно указывает либо на то, что что-то было удалено компоновщиком, либо что был вызван какой-то виртуальный абстрактный метод (по крайней мере, в моем недавнем опыте).

Вы можете проверить настройки компоновщика для своего реального проекта iPhone? Проблема исчезнет, ​​если вы установите ее на -nolink - см. http://docs.xamarin.com/ios/advanced_topics/linker

Если это поможет, то следующим шагом будет просмотр файла, сгенерированного wcf, - вы можете найти и опубликовать еще несколько кода о обратном вызове метод в этом случае?

0

Такие проблемы редко связаны с линкерами, даже если подпись является оберткой. Однако вы можете легко подтвердить это с помощью инструкций Стюарта.

IMO Вы, скорее всего, столкнетесь с ситуацией, когда компилятор AOT не смог предсказать требуемый код. Это может произойти при смешивании дженериков и типов значений (и у вас есть TimeSpan в сгенерированной подписи). Это будет работать на симуляторе (где используется JIT), но не при использовании AOT'а приложения.

Лучший способ решить эту проблему - открыть отчет об ошибке в http://bugzilla.xamarin.com и приложить тестовый пример, который позволит нам реплицировать проблему.

Смежные вопросы