Deseo crear un servicio WCF alojado en IIS6 y deshabilitar la autenticación anónima en IIS. Y no use SSL.Servicio WCF alojado de IIS + autenticación de Windows en IIS + TransportCredentialOnly/autenticación de Windows en basicHttpBinding
Así que la única manera que tengo es utilizar basicHttpBinging con TransportCredentialOnly
, ¿no?
Creo un directorio virtual, establezco la autenticación integrada de Windows y desmarco "Habilitar el acceso anónimo".
Aquí es mi web.config:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="MyBinding">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="Samples.ServiceFacadeService" behaviorConfiguration="ServiceFacadeServiceBehavior">
<endpoint address="" binding="basicHttpBinding" bindingName="MyBinding"
contract="Samples.IServiceFacadeService">
</endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceFacadeServiceBehavior">
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Se puede ver que aun no he incluido MEX-Enpoint para el intercambio de metadatos. Solo un punto final y uno vinculante con la seguridad TransportCredentialOnly.
Pero cuando intenta iniciar el servicio (invocando un método throught proxy de cliente) Tengo tal excepción en el EventLog:
Excepción: System.ServiceModel.ServiceActivationException: El servicio '/ wcftest/ServiceFacadeService.svc ' no se puede activar debido a una excepción durante la compilación. El mensaje excepción es: Seguridad configuración de este servicio requieren autenticación 'Anónimo' pero es no está habilitado para la aplicación de IIS que aloja este servicio .. ---> System.NotSupportedException: Seguridad ajustes para este servicio requiere Autenticación 'anónima' pero es no habilitado para la aplicación IIS que aloja este servicio.
No tengo idea de por qué mi servicio requiere Autorización anónima? ¿Por qué?
Gracias, lo he leído varias veces. Sí, se trata de basicHttpBinding con autenticación de Windows integrada en IIS. Pero, no ayuda. Puedes ver que tengo exactamente la misma configuración y no funciona como esperaba. – Shrike
Reemplazar "bindingName" con "bindingConfiguration" :) – jezell
Genius! ¡Gracias! Me has salvado la mente :) – Shrike