0

我不确定这是否可能,并且已经在网络上进行了一些快速搜索,但我认为不可能,但是就这样吧。

我有一个从数据库中检索项目列表的 Web 服务(老式 .asmx)。我希望我的客户端应用程序收到通知,如果有任何项目需要处理,而不是客户端应用程序每隔一段时间向 Web 服务发出请求。这可能吗?

我知道这可以通过 WCF(双工通信)实现,但是由于复杂性,我不能使用这种方法。

哎呀,我刚刚意识到我还需要 Web 服务来轮询自身或获取一些东西来异步调用它?不要认为这是一个很好的解决方案......

在此先感谢,奥南。

4

1 回答 1

1

它要么是轮询(由客户端发起),要么是像 Exchange、Imap 等那样维护会话。经典的 .asmx 通信由客户端发起。因此它不提供任何事件。

您可以通过开发由客户端托管的回调服务来自己实现双工。然后,您的 Web 服务可以调用回调客户端。但是,您必须找到一个好的解决方案来注册和注销客户端到 Web 服务。

实际上,让数据库在每次轮询时调用项目并不是一个好主意。您可以将结果缓存在 Web 服务引用的逻辑层中。如果您更喜欢经典的 .asmx 方法,您可以创建一个 bool 方法来检查新数据是否在由逻辑实现的缓存中。这会降低性能影响,然后轮询服务器也不会那么糟糕。

于 2013-01-15T10:41:57.610 回答