在包含webHttp和wsHttp的VS2010中添加服务引用时出错

时间:2012-01-25 15:03:23

标签: wcf service reference

我正在创建一个带有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>

1 个答案:

答案 0 :(得分:5)

我不知道它是否会解决你的问题,但我想我应该在这里分享我对类似问题的经验。

我得到了一个几乎相似的错误:

  

扩展元素&#39; webHttp&#39;无法添加到此元素。验证   扩展名已在扩展程序集合中注册   system.servicemodel /扩展/ behaviorExtensions。

error message

我尝试了很多东西来解决这个问题,但是无法做到。然后我从this页面找到了类似问题的建议:

  

检查您的客户端(ASP.NET MVC)配置并注释WCF端点   使用<enableWebScript />的行为。然后添加您的服务   引用并取消注释该行为。如果,必须完成相同的程序   您想要更新现有的脚本引用。我想这是一个错误   应该报告给Microsoft Connect。

我不是ASP.NET MVC,但我通过评论

尝试了这个建议
<behavior name="web">
          <webHttp />
        </behavior>

这部分来自我的app.config,可以添加服务参考然后!!然后在添加引用之后我再次取消注释该部分。

我无法解释。它对我有用,这就是我分享的原因。谢谢。