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