【问题标题】:2 WCF services, 1 common interface, multiple headaches2个WCF服务,1个通用接口,多头疼
【发布时间】:2010-07-27 20:50:34
【问题描述】:

我有 2 个 WCF 服务,它们实现了来自单独库的接口。接口的方法未使用 WebGet 或 WebInvoke 属性进行标记。但是,一项服务将处理 POST 请求,而另一项服务将处理 GET 请求。所以它有点像这样:

服务 1:处理所有 POST 请求。请求是 JSON,响应是 JSON。从接口继承和实现的所有方法都标有WebInvoke

服务 2:处理所有 GET 请求。请求是 JSON,响应是 JSONP。从接口继承和实现的所有方法都用 WebGet 标记

到目前为止一切顺利。现在解雇这些家伙 aaaaaand splat。这是我得到的错误:

Operation 'SomeMethod' in contract 'IServiceContract' has both WebGetAttribute and WebInvokeAttribute; only one can be present. 

hmmmm,如果实际界面已经标记了一个或两个属性,这将是有意义的,但它不是。

double hmmmmmm:如果您通过 VS 创建默认 WCF 服务并添加第二个服务并标记所有方法实现,则此设置非常有效。

triple hmmmmmmm:如果我只从 JSONP 服务中删除 WebGet 属性(将 WebInvoke 保留在 JSON 服务上),它就可以工作。如果我从 JSON 服务中删除 WebInvoke 属性也是如此。

编辑:另一件奇怪的事情,只有一个服务抛出此错误(我的 JSONP/GET 服务),而常规 JSON/POST 服务正常工作。

【问题讨论】:

  • 您能发布您的界面的完整代码吗?可能还有你的实现?
  • 不幸的是,我想通了....是的,经过近半天的代码查看后,我发现如果我删除对库的引用(包含接口),然后重新添加它,一切正常。

标签: c# .net wcf


【解决方案1】:

您是否尝试过删除对包含合同(接口)的项目的引用并重新添加它。或者甚至只是尝试运行“干净的解决方案”,以防万一已经过时了。

我假设它是您正在使用的项目参考?

【讨论】:

    猜你喜欢
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    相关资源
    最近更新 更多