【问题标题】:Can we use [Operationcontract(isOneWay="true")] in WCF REST?我们可以在 WCF REST 中使用 [Operationcontract(isOneWay="true")] 吗?
【发布时间】:2012-03-10 04:38:03
【问题描述】:

我想从 jquery 调用rest 操作。我不想等待响应,而是确认它已到达服务器(状态 202)。

我可以在我的 IService 中使用[operationContarct(isOneWay="true"] 吗?

是否像调用任何$.ajax[operationContract([webInvoked(method="...") 一样简单? 或者我是否需要应用进一步的配置......或者这种行为可能只适用于肥皂消息中表示的请求。

我有哪些选择(强调性能:客户端/服务器)?

【问题讨论】:

  • 仅仅因为 WCF 方法应用了IsOneWay=true 并不意味着调用者没有等待处理调用.....(它 等待 - 除非你有这个调用的异步版本)
  • 这个调用的异步版本是什么意思?看起来像soap
  • @marc_s 在这里可能有交叉的目的,但 IsOneWay=true 恰恰意味着客户端不等待响应。它所等待的只是收到数据包的 TCP ACK - 它不会等待处理消息
  • @RichardBlewett:是的,这就是我的意思——即使使用IsOneWay=True,客户仍然在等待确认……大多数人认为客户会立即返回——而不是等待任何事情——但这就是不是这种情况.....
  • 确认是我提到的http状态202

标签: wcf wcf-rest


【解决方案1】:

我的理解是 oneway=true 意味着当方法处理完毕后,服务仍然会返回一个“无效响应对象”,但是它不允许将任何错误异常返回给调用者。

【讨论】:

  • 但它是否需要在 web.config 中为服务器进行额外配置,是否需要为主体请求 +addition headers 的特殊格式,或者它只是像来自客户端的任何常规 $.ajax() 调用一样工作 + wcf 服务中的附加 [operationContaract(IsOneWay="true")] 属性,仅此而已...
猜你喜欢
  • 2012-12-04
  • 2012-12-17
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 2012-05-06
  • 1970-01-01
  • 2013-03-16
  • 2014-10-21
相关资源
最近更新 更多