21

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

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

4

4 回答 4

20

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

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

于 2013-08-14T19:10:43.910 回答
16

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

于 2016-07-07T12:21:01.697 回答
3

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

于 2017-08-16T14:56:39.407 回答
0

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

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

  <system.Web>
    <httpRuntime targetFramework="4.8" />
  </system.Web>
于 2020-05-31T19:24:06.170 回答