Как разрешить HTTP-статус 405 "Метод не разрешен" при вызове веб-служб

У меня есть симуляция, когда мне нужно получить доступ к веб-сервису SOAP с безопасностью WSE 2.0. У меня есть все сгенерированные прокси С# (которые получены из Microsoft.Web.Services2.WebServicesClientProtocol), я применяю сертификат, но когда я вызываю метод, я получаю сообщение об ошибке:

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)

Я сделал несколько поисковых запросов, и похоже, что это проблема конфигурации сервера. Однако этот веб-сервис используется многими клиентами без каких-либо проблем (веб-сервис предоставляется Telecom New Zealand, поэтому он должен быть настроен правильно. Я считаю, что он написан на Java)

Может кто-нибудь пролить свет на эту проблему?

Ответы

Ответ 1

Хорошо, нашел, в чем проблема. Я пытался вызвать URL-адрес .wsdl вместо URL-адреса .asmx. Doh!

Ответ 2

У меня была та же проблема, но детали были разными:

У Url, который мы использовали, не было файла (.asmx). Вызов Url в браузере был в порядке. Он также работал в простом клиенте, устанавливая URL-адрес через Visual Studio. Но это не помогло настроить Url динамически! Это дало ту же ошибку 405.

Наконец, мы обнаружили, что добавление файловой части в Web-сервис Url решило проблему. Может быть, ошибка структуры .Net?

Ответ 3

Я обнаружил, что это связано с тем, что WCF не установлен в IIS. Главное, чтобы расширение .svc должно отображаться в IIS См. Здесь MSDN. Используйте инструмент ServiceModelReg для завершения установки. Вы всегда хотите проверить, что WCF установлен, и .svc отображается в IIS в любое время, когда вы получаете новый компьютер или переустанавливаете IIS.

Ответ 4

hmm - это те другие клиенты, которые также используют С#/. NET?

Не разрешен метод → может ли это быть служба REST, а не веб-служба SOAP?

Ответ 5

MethodNotAllowedEquivalent к HTTP-статусу 405. MethodNotAllowed указывает, что метод запроса (POST или GET) не разрешен на запрошенном ресурсе.

Проблема в вашей enpoint uri не является полной или правильной addres для wcf -.scv Проверьте правильность вашего proxy.enpoint или wcf client.enpoint uri.

Ответ 6

В моем случае проблема заключалась в неправильном формировании/вызове конфигурации приложения: в конфигурации URL-адрес службы использовал "localhost" в качестве имени домена, но реальное имя хоста отличалось от URL-адреса, который я назвал:( поэтому я изменил "localhost" в config на имя домена thah, которое я использую в URL-адресе. Это все!