找不到配置绑定扩展'system.serviceModel / bindings / basicHttpsBinding'

时间:2013-08-14 18:42:12

标签: c# asp.net .net wcf web-config

当我尝试导航到我的.svc文件时出现此错误。它似乎没有找到我的basicHttpsBinding;这是我的web.config的那一部分:

<system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior>
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="true"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
<protocolMapping>
  <add binding="basicHttpsBinding" scheme="https"/>
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true"/> 

我尝试在Google上搜索,但我找到的任何答案似乎都不适用于我在这里所做的事情。我发现的大部分内容都谈到了自定义绑定,我认为我没有。老实说,我甚至不确定是什么导致了这个错误,所以任何帮助都会非常感激。如果您需要更多信息,请告诉我,我会添加它。

4 个答案:

答案 0 :(得分:18)

BasicHttpsBinding是.NET 4.5中的新绑定,因此您无法在4.0应用程序中使用它。要么删除protocolMapping,要么使用其他绑定,例如basicHttpBindingwsHttpBinding

在IIS中配置SSL时,这也可以正常工作。

答案 1 :(得分:12)

如果您有类似我的Visual Studio生成的Web.config具有以下配置的场景:

  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <pages controlRenderingCompatibilityVersion="4.0" />
  </system.web>

...添加<httpRuntime targetFramework="4.5" />

所以你现在有了

  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <pages controlRenderingCompatibilityVersion="4.0" />
    <httpRuntime targetFramework="4.5" /> 
  </system.web>

我还继续删除<pages controlRenderingCompatibilityVersion="4.0" />,对我的情况没有任何影响。

答案 2 :(得分:1)

protocolMapping移除web.config部分,它会起作用。

答案 3 :(得分:0)

如果使用框架4.5或更高版本,则可以将以下代码添加到web.config

可以在标记上设置以下属性。

  <system.Web>
    <httpRuntime targetFramework="4.8" />
  </system.Web>