我有2个WCF服务,它们从一个单独的库实现一个接口。接口的方法未标记WebGet或WebInvoke属性。但是,一个服务将处理POST请求,而另一个服务正在处理GET请求。所以它有点像这样:
服务1:处理所有POST请求。请求是JSON,响应是JSON。从接口继承和实现的所有方法都标有WebInvoke
服务2:处理所有GET请求。请求采用JSON,响应采用 JSONP 。从界面继承和建议的所有方法都标有WebGet
到目前为止一切顺利。现在解雇这些家伙aaaaa和splat。这是我得到的错误:
Operation 'SomeMethod' in contract 'IServiceContract' has both WebGetAttribute and WebInvokeAttribute; only one can be present.
嗯,如果实际界面已经标记了一个或两个属性,这将是有意义的,但它不是。
double hmmmmmm:如果您通过VS创建默认WCF服务添加第二个服务并标记所有方法实现,则此设置可以正常工作。
triple hmmmmmmm:如果我只从我的JSONP服务中删除WebGet属性(将WebInvoke保留在JSON服务上),它就可以工作。如果我从我的JSON服务中删除WebInvoke属性,也是如此。
编辑:另一个奇怪的事情,只有一个服务抛出此错误(我的JSONP / GET服务),而常规的JSON / POST服务正常工作。
答案 0 :(得分:1)
您是否尝试删除对包含合同(接口)的项目的引用并重新添加它。或者甚至只是尝试运行“清洁解决方案”以防万一已经过时。
我假设它是您正在使用的项目参考?