Поэтому я пытаюсь настроить приложение WCF 4 REST для использования нескольких стандартных конечных точек (для функции справки). Причина этого заключается в том, что в моем процессе IIS хостинга включена анонимная проверка подлинности и проверка подлинности Windows, и определенные конечные точки в моем приложении WCF требуют одного или другого (оба результата приводят к исключению).
Ранее я мог сделать это, определив некоторые привязки:
<bindings>
<webHttpBinding>
<binding name="Anonymous">
<security mode="None" />
</binding>
<binding name="WindowsAuthentication">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
</webHttpBinding>
</bindings>
А затем определить службы следующим образом:
<services>
<service name="Host.SubscriberInfoHost">
<endpoint address="" binding="webHttpBinding" bindingConfiguration="WindowsAuthentication" contract="Host.ISubscriberInfoHost" />
</service>
<service name="Utilities.Instrumentation.ServiceStatus.ServiceStatusHost">
<endpoint address="" binding="webHttpBinding" bindingConfiguration="Anonymous" contract="Utilities.Instrumentation.ServiceStatus.IServiceStatusHost" />
</service>
</services>
Это то, что я пытался сделать до сих пор, используя стандартную модель конечных точек:
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="Host.SubscriberInfoHost" helpEnabled="true" automaticFormatSelectionEnabled="true">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</standardEndpoint>
<standardEndpoint name="Utilities.Instrumentation.ServiceStatus.IServiceStatusHost" helpEnabled="true" automaticFormatSelectionEnabled="true">
<security mode="None" />
</standardEndpoint>
</webHttpEndpoint>
</standardEndpoints>
Однако при этом запутывается служба, поскольку я получаю:
System.InvalidOperationException: IIS specified authentication schemes 'Negotiate, Anonymous', but the binding only supports specification of exactly one authentication scheme. Valid authentication schemes are Digest, Negotiate, NTLM, Basic, or Anonymous. Change the IIS settings so that only a single authentication scheme is used
Это именно то, от чего я пытаюсь уйти. Может ли кто-нибудь помочь мне разобраться, как бы я создал ситуацию, используя новую стандартную модель конечных точек? Спасибо!