我在使用jquery使用WCF服务时遇到了问题。我收到错误“无法找到配置绑定扩展'system.serviceModel / bindings / webHttpbinding'。请验证此绑定扩展是否已在system.serviceModel / extensions / bindingExtensions中正确注册,并且拼写正确。”
这是我的Web.Config文件:
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" />
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="RestfulServiceBehavior">
<webHttp helpEnabled="true"/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="WebServiceBehavior">
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="WcfService1.RestfulServiceImp" behaviorConfiguration="WebServiceBehavior">
<endpoint address="" behaviorConfiguration="RestfulServiceBehavior"
bindingConfiguration="webHttpBindingWithJsonP" binding="webHttpbinding" contract="WcfService1.IRestfulServiceImp"/>
<!--<endpoint address="mex" binding="mexHttpBinding" contract="WcfService1.IRestfulServiceImp"/>-->
<endpoint address="soap" binding="basicHttpBinding" contract="WcfService1.IRestfulServiceImp"/>
</service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="false"/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
</httpProtocol>
</system.webServer>
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="xml"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\log\Traces.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
这是我的服务名称RestfulServiceImp,我的合同是IRestfulServiceImp 请提供有关这些的宝贵建议。
提前致谢。
答案 0 :(得分:1)
您的配置中存在不匹配的情况,
<bindings>
<webHttpBinding>
<binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" />
</webHttpBinding>
</bindings>
和
<endpoint address="" behaviorConfiguration="RestfulServiceBehavior"
bindingConfiguration="webHttpBindingWithJsonP" binding="webHttpbinding" contract="WcfService1.IRestfulServiceImp"/>
<!--<endpoint address="mex" binding="mexHttpBinding" contract="WcfService1.IRestfulServiceImp"/>-->
<endpoint address="soap" binding="basicHttpBinding" contract="WcfService1.IRestfulServiceImp"/>
检查webHttpBinding中的大小写差异..您使用了 webHttpbinding 而不是 webHttpBinding。
答案 1 :(得分:0)
此刻我没有打开VS,但请确保这个案例并不重要。
'system.serviceModel/bindings/webHttpbinding
vs
<webHttpBinding>
编辑:所以我打开VS并将绑定名称更改为小写并得到相同的错误。尝试修复你的案件差异。