【问题标题】:Monotouch/WCF Error on iPhone HardwareiPhone 硬件上的 Monotouch/WCF 错误
【发布时间】:2012-05-15 19:32:43
【问题描述】:

我使用类似于http://docs.xamarin.com/ios/tutorials/Working_with_Web_Services#Consuming_WCF_Services 的 Silverlight SLSvcUtil.exe 工具在 Monotouch 上创建了一个 WCF 客户端。

在模拟器上一切正常,但是当我在 iPhone 4S 上启动它时出现错误:

在使用 --aot-only 运行时尝试 JIT 编译方法 '(wrapper delegate-begin-invoke) :begin_invoke_IAsyncResult_this__TimeSpan_AsyncCallback_object (System.TimeSpan,System.AsyncCallback,object)'。

有什么想法吗?

【问题讨论】:

标签: wcf xamarin.ios


【解决方案1】:

我已经从 monotouch 调用了一些 wcf 服务,而没有遇到任何此类问题 - 所以可以完成。

monotouch 中的 jit 错误通常表明链接器删除了某些内容,或者调用了某些虚拟抽象方法(至少在我最近的经验中)。

你能检查一下你真正的 iPhone 项目的链接器设置吗?如果您将其设置为 -nolink,问题是否会消失 - 请参阅 http://docs.xamarin.com/ios/advanced_topics/linker

如果确实有帮助,那么下一步就是查看 wcf 生成的文件 - 在这种情况下,您能找到并发布更多关于回调方法的代码吗?

【讨论】:

    【解决方案2】:

    此类问题很少与链接器相关,如果签名是包装器则更少。不过,您可以根据 Stuart 的说明轻松确认。

    IMO 您可能会遇到 AOT 编译器无法预测所需代码的情况。混合泛型和值类型时会发生这种情况(并且您在生成的签名中有 TimeSpan)。这将适用于模拟器(使用 JIT),但不适用于 AOT 应用程序。

    解决此类问题的最佳方法是在http://bugzilla.xamarin.com 打开错误报告并附上允许我们复制问题的测试用例。

    【讨论】:

      猜你喜欢
      • 2011-05-09
      • 1970-01-01
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多