我有一个WCF服务,需要满足以下要求:
> Endpoint1:它应该使用netTCP绑定与Windows身份验证.
> Endpoint2:它应该使用netTCP绑定和自定义用户名和密码验证.
我可以通过创建两个服务行为来单独执行这两个操作,一个用于Windows身份验证,一个用于用户名和密码,但是这样我必须公开2个服务而不是1个用于上述功能.我正在寻找一种方式,我只能通过一种服务和不同的端点配置,我能够满足要求.
代码段和配置会很有帮助.
最佳答案 这是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>