繁体   English   中英

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

[英]Configuration binding extension 'system.serviceModel/bindings/basicHttpsBinding' could not be found

当我尝试导航到我的 .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"/> 

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

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

当您在 IIS 中配置 SSL 时,这应该也可以工作。

如果您有与我类似的情况,其中 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" />而对我的情况没有影响。

web.config中删除protocolMapping部分,它将起作用。

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

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

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

在 VS2022 上,我明确指定了 targetFramework 属性,如下所示:

由此

<httpRuntime/>

对此

<httpRuntime targetFramework="4.8"/>

...而且效果很好!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM