我正在创建一个带有wsHttp和JSON端点的web服务。下面的配置托管在一个网站项目中工作正常,除非我尝试在网站上创建服务引用。端点行为似乎导致错误:
“扩展错误'webHttp'无法添加到此元素。验证是否在system.servicemode / extensions / behaviorExtensions扩展集合中注册了异常”
它不会在svcUtil.exe中引发错误。看起来VS具体,但我想深究它。
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<behavior name="JSON">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="HelloWorldBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="HelloWorldBehavior" name="HelloWorld">
<endpoint address="/json" behaviorConfiguration="JSON"
binding="webHttpBinding" contract="IHelloWorld" >
</endpoint>
<endpoint name="wcf" address="" binding="wsHttpBinding"
contract="IHelloWorld" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
答案 0 :(得分:5)
我不知道它是否会解决你的问题,但我想我应该在这里分享我对类似问题的经验。
我得到了一个几乎相似的错误:
扩展元素&#39; webHttp&#39;无法添加到此元素。验证 扩展名已在扩展程序集合中注册 system.servicemodel /扩展/ behaviorExtensions。
我尝试了很多东西来解决这个问题,但是无法做到。然后我从this页面找到了类似问题的建议:
我不是ASP.NET MVC,但我通过评论尝试了这个建议检查您的客户端(ASP.NET MVC)配置并注释WCF端点 使用
<enableWebScript />
的行为。然后添加您的服务 引用并取消注释该行为。如果,必须完成相同的程序 您想要更新现有的脚本引用。我想这是一个错误 应该报告给Microsoft Connect。
<behavior name="web">
<webHttp />
</behavior>
这部分来自我的app.config,可以添加服务参考然后!!然后在添加引用之后我再次取消注释该部分。
我无法解释。它对我有用,这就是我分享的原因。谢谢。