c# .net web-services wse2.0

c# - Cómo resolver el estado HTTP 405 "Método no permitido" al llamar a servicios web



.net web-services (6)

En mi caso, el problema era que la configuración de la aplicación se formó / llamaba incorrectamente: en la configuración, la url del servicio usaba "localhost" como nombre de dominio, pero el nombre de host real difería de la URL que llamé :( así que cambié el "localhost" en config al nombre de dominio thah que uso en URL. ¡Eso es todo!

Tengo una situación en la que necesito acceder a un servicio web SOAP con seguridad WSE 2.0. Tengo todos los proxies c # generados (que se derivan de Microsoft.Web.Services2.WebServicesClientProtocol), estoy aplicando el certificado, pero cuando llamo a un método me sale un error:

System.Net.WebException : The request failed with HTTP status 405: Method Not Allowed. at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)

He hecho algunas búsquedas en Google y parece que este es un problema de configuración del servidor. Sin embargo, este servicio web es utilizado por muchos clientes sin ningún problema (el servicio web es proporcionado por un Telecom New Zealand, por lo que está destinado a ser configurado correctamente. Creo que está escrito en Java)

¿Alguien puede arrojar algo de luz sobre este tema?


hmm ¿esos otros clientes también usan C # /. NET?

Método no permitido -> ¿podría ser este un servicio REST, en lugar de un servicio web SOAP?


Ok, encontré cuál era el problema. Intenté llamar a una url .wsdl en lugar de .asmx url. Doh!


Tuve el mismo problema, pero los detalles fueron diferentes:

La URL que estábamos usando no tenía la parte del archivo (.asmx). Llamar a la URL en un navegador estaba bien. También funcionó en un cliente simple configurando la URL a través de Visual Studio. ¡Pero no funcionó configurando la URL de forma dinámica! Dio el mismo error 405.

Finalmente, encontramos que agregar la parte del archivo a la Url del Servicio Web resolvió el problema. Tal vez un error de .Net framework?


Descubrí que esto se debe a que WCF no está instalado en IIS. Lo principal es que la extensión .svc debe asignarse en IIS. Vea MSDN aquí. Use la herramienta ServiceModelReg para completar la instalación. Siempre querrá verificar que WCF está instalado y .svc está asignado en IIS cada vez que obtiene una nueva máquina o reinstala IIS.


MethodNotAllowedEquivalent to HTTP status 405. MethodNotAllowed indica que el método de solicitud (POST o GET) no está permitido en el recurso solicitado.

El problema está en su enpoint uri no está completo o direcciones correctas en wcf - .scv Verifique su proxy.enpoint o wcf client.enpoint uri es correcto.