找不到与端点方案 http 匹配的基地址,该端点具有绑定 WSHttpBinding 且没有解决方案

Posted

技术标签:

【中文标题】找不到与端点方案 http 匹配的基地址,该端点具有绑定 WSHttpBinding 且没有解决方案【英文标题】:Could not find a base address that matches scheme http for the endpoint with binding WSHttpBinding with NO SOLUTION YET 【发布时间】:2015-02-06 15:15:26 【问题描述】:

我有一个 WCF 服务(带有身份验证和授权)托管在 IIS 7.5 中,使用 Windows Server 2008 R2 中的 SSL 认证。在此服务器中使用 Visual Studio 运行 WCF 应用程序时出现错误。 WCF 测试客户端给了我这个错误:找不到与具有绑定 WSHttpBinding 的端点的方案 https 匹配的基地址。但它在 IIS 中工作。而且我可以在我的 Web 应用程序中部署我的 WCF 服务而不会出错。所有的建议都试过了,没有解决办法。

我的 web.config:

<system.serviceModel>
<bindings>
  <wsHttpBinding>
    <binding name="wsHttpEndpointBinding">
      <security mode="TransportWithMessageCredential">
        <transport clientCredentialType="None"/>
        <message clientCredentialType="UserName"/>
      </security>
    </binding>
  </wsHttpBinding>
</bindings>

<services>
  <service behaviorConfiguration="ServiceBehavior" name="TBBWS.TBBService">

    <endpoint address=""  binding="wsHttpBinding" bindingConfiguration="wsHttpEndpointBinding"
     name="wsHttpEndpoint" contract="TBBWS.ITBBService" />

    <endpoint address="mex" binding="mexHttpsBinding" bindingConfiguration=""
      name="MexHttpsBindingEndpoint" contract="IMetadataExchange"/>

  </service>
</services>

<behaviors>
  <serviceBehaviors>
    <behavior name="ServiceBehavior">
      <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="false" />
      <serviceCredentials>
        <userNameAuthentication userNamePasswordValidationMode="Custom"
          customUserNamePasswordValidatorType="TBBWS.CustomValidation, App_Code" />
      </serviceCredentials>
      <serviceAuthorization principalPermissionMode="Custom">
        <authorizationPolicies>
          <add policyType="TBBWS.CustomAuthorizationPolicy, App_Code" />
        </authorizationPolicies>
      </serviceAuthorization>
    </behavior>
  </serviceBehaviors>
</behaviors>

<protocolMapping>
  <remove scheme="http" />
  <add binding="wsHttpBinding" scheme="https" />
</protocolMapping>

<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />

有什么建议吗?

【问题讨论】:

对于我没有启用 SSL 的本地环境,我只是评论了 SSL 端点 【参考方案1】:

好的,我明白了。对于那些因为同样的问题需要帮助的人:

1)我在 serviceCredentials 标签下添加了&lt;serviceCertificate storeLocation="LocalMachine" storeName="My" findValue="bla bla bla" x509FindType="FindByThumbprint" /&gt;

2)我定义了 2 个绑定。 http 和 https。我删除了 http 绑定。

还是谢谢...

【讨论】:

以上是关于找不到与端点方案 http 匹配的基地址,该端点具有绑定 WSHttpBinding 且没有解决方案的主要内容,如果未能解决你的问题,请参考以下文章

从 http 到 https,得到“找不到与绑定 WebHttpBinding 的端点的方案 http 匹配的基地址”

找不到与具有绑定 WebHttpBinding 的端点的方案 https 匹配的基地址。注册的基地址方案是 [http]

WCF 错误“找不到与具有绑定 NetTcpBinding 的端点的方案 net.tcp 匹配的基地址”

WCF Web 服务未部署在 localhost ... web.config ... 端点上

带有服务结构的 SOAP - Https 和 Http 绑定

WCF 找不到默认端点