Tengo una aplicación web ASP.NET escrita en VB.NET. Una parte de la aplicación realiza una llamada AJAX a un archivo ASMX interno que a su vez hace una llamada a un servicio web remoto que es solo un único archivo ASMX. Normalmente esto funciona bien y se ha implementado un par de veces y funciona bien. Sin embargo un cliente, es conseguir que el mensaje de la llamada AJAX:La solicitud HTTP no está autorizada con el esquema de autenticación de cliente 'Anónimo'. El encabezado de autenticación recibido del servidor fue 'NTLM'
La petición HTTP no está autorizado con el esquema de autenticación de cliente 'Anonymous'. El encabezado de autenticación recibido del servidor fue 'NTLM'.
He recorrido una gran cantidad de sitios web tratando de solucionar esto, pero parece que no encuentro ninguna respuesta que me sirva.
No he podido replicar el error en mi servidor de prueba, que es el mismo que el del cliente, Win2003 IIS6.
El servicio web remoto se implementa en Windows 2008 r2 - IIS7.5. El servicio remoto se implementa utilizando solo la autenticación 'Anónimo'. La implementación del cliente está configurada con Anónimo y 'Autenticación integrada de Windows'. He intentado cambiar los niveles de autenticación en ambas implementaciones pero no puedo replicar el problema. Lo más cerca que he llegado es cuando me puse la autenticación del servicio IIS remoto para
la solicitud HTTP no está autorizado con el esquema de autenticación de cliente 'NTLM'. El encabezado de autenticación recibido del servidor fue ''.
En el archivo web.config la referencia al servicio remoto es:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="SVCMappingSoap" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
<message clientCredentialType="UserName" algorithmSuite="Default"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://svc.website.com/services/myService.asmx" binding="basicHttpBinding" bindingConfiguration="SVCMappingSoap" contract="SVCMappingService.SVCMappingSoap" name="SVCMappingSoap"/>
</client>
</system.serviceModel>
He intentado cambiar un número de la configuración en la sección <security>
pero aún incapaz de replicarse.
Descubrí que el cliente está utilizando un servidor proxy. La desactivación del servicio web remoto dio como resultado el mismo mensaje de error en el cliente, por lo que parece que todos los problemas se deben a su configuración de red. Configuré el enlace para usar su proxy que dio como resultado el mensaje: 'El servidor remoto devolvió una respuesta inesperada: (407) Se requiere autenticación proxy (El servidor ISA requiere autorización para cumplir con la solicitud. Se niega el acceso al filtro del proxy web.) .' He pasado el problema a quien sea responsable de la configuración de la red del cliente. – SausageFingers
Hola @Fly_Trap, ¿me puede describir cómo este proxy entre usted y su endpoint estaba afectando la autorización? Tengo un problema similar en este momento, parece que el tuyo podría ayudarme. –
@Johnny_D, desafortunadamente no sé cómo se configuró el proxy. – SausageFingers