4

我有一个 WCF 服务需要满足以下要求:

  1. Endpoint1:它应该使用带有 Windows 身份验证的 netTCP 绑定。
  2. Endpoint2:它应该使用带有自定义用户名和密码验证的 netTCP 绑定。

我可以通过创建两种服务行为来单独完成这两项工作,一种用于 Windows 身份验证,另一种用于用户名和密码,但这样我必须为上述功能公开 2 个服务而不是 1 个。我正在寻找一种方法,通过这种方法我可以只公开一个服务,并且通过不同的端点配置,我能够满足要求。

代码片段和配置会很有帮助。

4

1 回答 1

2

这是 WCF 支持的场景之一,单个接口公开为 2 个不同的端点。

它们将有两个不同的地址,但指向相同的代码。

<service 
    name="Microsoft.ServiceModel.Samples.CalculatorService"
    behaviorConfiguration="CalculatorServiceBehavior">
    <!-- This endpoint is exposed at the base address provided by host:       http://localhost/servicemodelsamples/service.svc  -->
   <endpoint address=""
        binding="basicHttpBinding"
        contract="Microsoft.ServiceModel.Samples.ICalculator" />
   <!-- secure endpoint exposed at {base address}/secure:       http://localhost/servicemodelsamples/service.svc/secure -->
  <endpoint address="secure"
        binding="wsHttpBinding"
        contract="Microsoft.ServiceModel.Samples.ICalculator" />
  ...
</service>

请参阅:http: //msdn.microsoft.com/en-us/library/ms751515.aspx

于 2012-09-09T20:02:00.007 回答