C# 相同的WCF服务,具有不同的端点和HTTPS的不同绑定

C# 相同的WCF服务,具有不同的端点和HTTPS的不同绑定,c#,web-services,wcf,C#,Web Services,Wcf,我看了几篇关于SO的文章,这些文章展示了如何为同一个服务添加多个端点,但没有一篇文章实际使用HTTPS,这就是我提出这个问题的原因 我拥有的 我有一个网络服务 https://portal.gov.com/us/216/_vti_bin/external/gov.svc 我想要什么 我想使用两种不同的配置和具有不同端点但相同URL?的绑定来调用此web服务?。(对不起,我可能对端点的概念感到困惑) 下面是我的web.config的外观 <?xml version="1.0" encodi

我看了几篇关于SO的文章,这些文章展示了如何为同一个服务添加多个端点,但没有一篇文章实际使用HTTPS,这就是我提出这个问题的原因

我拥有的

我有一个网络服务

https://portal.gov.com/us/216/_vti_bin/external/gov.svc
我想要什么

我想使用两种不同的配置和具有不同端点但相同URL?的绑定来调用此web服务?。(对不起,我可能对端点的概念感到困惑)

下面是我的web.config的外观

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Gov_ServiceBehavior">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
        </behavior>
      </serviceBehaviors>

      <endpointBehaviors>
        <behavior name="restBehavior">
          <webHttp defaultBodyStyle="Wrapped" defaultOutgoingResponseFormat="Json" automaticFormatSelectionEnabled="true" />
        </behavior>
      </endpointBehaviors>
    </behaviors>

    <bindings>
      <webHttpBinding>
        <binding name="Gov_webHttpBinding">
          <security mode="Transport">
            <transport clientCredentialType="InheritedFromHost" />
          </security>
        </binding>
      </webHttpBinding>
      <!--<basicHttpBinding>
        <binding name="Gov_BasicHttpBinding">
          <security mode="Transport">
            <transport clientCredentialType="InheritedFromHost" />
          </security>
        </binding>
      </basicHttpBinding>-->
    </bindings>

    <services>
      <service name="Portal.WebServices.External.Gov" behaviorConfiguration="Gov_ServiceBehavior">
        <endpoint address="" binding="webHttpBinding" behaviorConfiguration="restBehavior" contract="Portal.WebServices.External.IGov" bindingConfiguration="Gov_webHttpBinding"/>
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/>
        <!--<endpoint address="basic" binding="basicHttpBinding" contract="Portal.WebServices.External.IGov" bindingConfiguration="Gov_BasicHttpBinding"/>-->
      </service>
    </services>

  </system.serviceModel>

</configuration>

疼痛在哪里

它只有在注释掉basicHttpBinding和它的端点之后才起作用,一旦我包含它,就会出现无声错误

根据本条例—


它应该可以工作,但可能无法工作,因为我正在使用HTTPS并将绑定标记添加到我的web.Config

您试图实现的目标是不可能的。不能对完全相同的端点应用两个不同的绑定。如果您再次尝试读取参考,则很明显样本有两个不同的端点:

第一个地址是,第二个地址是 是这两个端点彼此不同,但具有相同的契约

第二个端点正好相对于基址


我希望这能让您清楚地了解绑定和端点。

您试图实现的目标是不可能的。不能对完全相同的端点应用两个不同的绑定。如果您再次尝试读取参考,则很明显样本有两个不同的端点:

第一个地址是,第二个地址是 是这两个端点彼此不同,但具有相同的契约

第二个端点正好相对于基址


<>我希望这能让您清楚地了解绑定和终结点。

我不认为<代码> WebHutpBoope类似于<代码> BaseCtTpBuffs。需要使用
WebHttpBinding
。并且没有
元数据
被公开以供使用。
HTTPS
在这里肯定不是这样,而是您公开服务的方式,也就是说,您选择的绑定组合可能无法同时工作。您是否可以尝试删除
WebHttpBinding
并添加另一个
WsHttpBinding
,以查看发生了什么情况。如果
WebHttpBinding
没有元数据可供使用。请参阅@AmitKumarGhosh抱歉,但我认为您不理解中的问题这个问题,谢谢你的尝试。我不认为<代码> WebHhttpBoope<代码>类似于 BaseChutpBoope。当构建一个REST WCF服务时,需要使用<代码> WebHhttpBoope<代码>。并且没有<代码>元数据被公开用于消费。<代码> http绝对不是这里的情况。但是你公开服务的方式,也就是说,您选择的绑定组合可能无法同时工作。您是否可以尝试删除
WebHttpBinding
并添加另一个
WsHttpBinding
,以查看发生了什么情况。如果
WebHttpBinding
没有元数据可供使用。请参阅@AmitKumarGhosh抱歉,但我认为您不理解中的问题这个问题,谢谢你的尝试。