我可以拥有一个有两个端点的WCF应用程序。一个是Windows安全版,一个没有?

时间:2012-11-02 22:50:35

标签: .net wcf wcf-4

我已经阅读了几篇帖子(这里是在SO和MSDN上),据说这些帖子可以显示我如何为我的WCF服务提供两个端点。但是,我似乎无法让这个工作。我尝试了他们展示的东西,但它仍然不起作用。

以下是我现在所拥有的:

<system.serviceModel>
  <services>
    <service name="MyServiceProject.MyServiceClass">
      <endpoint address="MyService.svc"
                  binding="basicHttpBinding"
                  bindingName="normalBasicHttpBinding"
                  contract="MyContractsProject.IMyServiceClass" />

        <endpoint address="SecuredMyService.svc"
                  binding="basicHttpBinding"
                  bindingName="secureBasicHttpBinding"
                  contract="MyContractsProject.IMyServiceClass" />
    </service>
  </services>
  <bindings>
      <basicHttpBinding>
          <binding name="normalBasicHttpBinding" maxBufferSize="5242880"
                    maxBufferPoolSize="5242880"
                    maxReceivedMessageSize="5242880">
              <readerQuotas maxArrayLength="16384"
                            maxStringContentLength="5242880" />
          </binding>

        <binding name="secureBasicHttpBinding" maxBufferSize="5242880"
                    maxBufferPoolSize="5242880"
                    maxReceivedMessageSize="5242880">
          <security mode="Transport">
            <transport clientCredentialType="Windows" />
          </security>
          <readerQuotas maxArrayLength="16384"
                        maxStringContentLength="5242880" />
        </binding>
      </basicHttpBinding>
  </bindings>
  <behaviors>
      <serviceBehaviors>
          <behavior>
              <serviceMetadata httpGetEnabled="true" />
              <serviceDebug includeExceptionDetailInFaults="true" />
          </behavior>
      </serviceBehaviors>
  </behaviors>
</system.serviceModel>

我尝试过这种变化:

  • 取出安全保障
  • 第一个地址为空,第二个地址为“安全”,然后转到http://MyNormalEndpoint/MyService.svc/secure(空白且WCF风暴无法连接)
  • 添加&lt; Host>部分,该部分是对部署路径的硬引用。 (我不想这样做,因为我的服务必须部署到几个不同的位置。但它无论如何都不起作用)
  • 只有一个端点(安全端点)
  • 使用两种不同的绑定类型(wsHttpBinding)。

这些都没有奏效。

现在对我正常服务的调用正在返回404.(所以我搞砸了一些东西)。如果您想查看我的原始(工作)配置,可以找到here

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您确定您拥有适当的地址格式

Specifying an Endpoint Address