【问题标题】:.NET compact framework - "offline webservices" support.NET 紧凑型框架 - “离线 Web 服务”支持
【发布时间】:2011-03-09 03:38:17
【问题描述】:

我有一个 Win Mobile 6.0 .NET CF 应用程序,它使用对 WebService 的引用来调用它的 Web 方法。在设备处于 WLAN 覆盖范围内的正常情况下,Web 方法可以由设备同步执行。问题是设备离线(没有 WIFI 或 GPRS 覆盖)。我希望应用程序仍然可以运行,但需要“缓冲”Web 方法调用,以便所有操作都存储在本地,如果设备再次上线,所有待处理的 Web 请求都在 WebService 上执行。 .NET CF 中是否有任何通用解决方案?还是我必须手动实现它?我现在能想到的唯一想法是手动提取 WebService 的接口并实现它的自定义实现,以检查 WebService 是否可用,在这种情况下,将所有 Web 方法调用引用到 WebService 代理。如果 WebService 不可用(没有 Internet 连接等),则调用我的自定义实现,哪些存储是本地 WebMethod 调用(即在本地文件中)。 .NET CF 是否支持来自 WCF 的某种事务机制?

谢谢 多米尼克

【问题讨论】:

  • 如果网络服务请求需要响应,你会怎么做?如果客户端需要等待 Web 服务调用完成,你会怎么做?
  • 这对我来说不是问题。我需要让我的移动应用程序“透明地”离线工作。

标签: c# .net http windows-mobile web-services


【解决方案1】:

link text绝对没有任何开箱即用的东西可以做到这一点。您描述的行为不是交易行为,而是更多有保证的交付行为。 Microsoft 将Disconnected Service Agent Application Block 作为解决此类方案的桌面 SCSF 的一部分。

模式和实践团队确实在 Mobile Client Software Factory 中将其缩小版本作为离线应用程序块 (sample here),但请注意 MCSF 中的许多其他内容是从桌面 SCSF 没有真正考虑嵌入式设备上的性能或内存,因此它在真实设备上确实无法使用(这是我说它完全糟糕的好方法)。不过,OAB 似乎是一个合理的实现,并且可能会做你想做的事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多