WCF错误 - 找不到与scheme匹配的基址

时间:2010-07-05 04:54:42

标签: wcf configuration ssl web-config

我正在尝试使用WCF Web服务来使用SSL,正如您可以想象的那样works on my machine,但是当我在生产环境中运行它时,我得到了这个:

  

无法使用绑定BasicHttpBinding找到与端点的scheme http匹配的基址。注册的基地址方案是[https]。

尽管这个问题经过了几个小时的摔跤,我仍然不知道这个错误信息实际意味着什么 - 谷歌搜索此错误消息发现有很多人说我应该在我的端点配置中指定一个地址或添加一个基地址然而,对我的服务:

  • 我的服务工作得很好,没有指定SSL已禁用
  • 事实上,我的服务使用 SSL完美地完成与另一台计算机上的完全相同的配置
  • 此外,我发现a post能够可靠地通知我,在IIS下托管时,无论如何都会忽略基址。

正如你可能会说的那样,我现在感到非常沮丧,因为我完全无法实现我认为相对简单的任务,所以:

  • 此错误消息实际意味着什么?
  • 在IIS下托管时如何确定基址?
  • 我在哪里可以找到有关所有复制粘贴配置实际含义的可靠,易于理解的文档?
  • 我需要做些什么才能让我的服务真正发挥作用?

我的web.config有趣的部分是:

<system.serviceModel>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
  <services>
    <service name="MyService" behaviorConfiguration="MyBehavior">
      <endpoint binding="basicHttpBinding" bindingConfiguration="SecureTransport" 
                bindingNamespace="http://MyNamespace/Service" name="Basic"
                contract="MyContract" />
    </service>
  </services>
  <behaviors>
    <serviceBehaviors>
      <behavior name="MyBehavior">
        <serviceMetadata httpsGetEnabled="true"/>
        <serviceDebug includeExceptionDetailInFaults="true"/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <bindings>
    <basicHttpBinding>
      <binding name="SecureTransport">
        <security mode="Transport" />
      </binding>
    </basicHttpBinding>
  </bindings>
</system.serviceModel>

1 个答案:

答案 0 :(得分:0)

如果服务器上的SSL证书已过期或未正确设置,则可能会导致此消息的一件事是关闭字段。