Как определить статус HTTP 405 «Метод не разрешен» при вызове веб-служб - PullRequest
15 голосов
/ 30 сентября 2008

У меня есть возможность получить доступ к веб-сервису SOAP с безопасностью WSE 2.0. У меня есть все сгенерированные прокси-серверы c # (которые получены из 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)

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

Ответы [ 7 ]

18 голосов
/ 06 октября 2008

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

4 голосов
/ 02 марта 2011

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

4 голосов
/ 07 апреля 2010

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

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

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

0 голосов
/ 18 марта 2019

Вам необходимо включить активацию HTTP

Перейдите в Панель управления> Функции Windows> .NET Framework 4.5 Advanced Services> Службы WCF> HTTP-активация

0 голосов
/ 15 января 2016

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

0 голосов
/ 31 мая 2013

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

Проблема в том, что у вас нет точных или неправильных адресов в wcf - .scv Проверьте, правильно ли указан ваш proxy.enpoint или wcf client.enpoint.

0 голосов
/ 30 сентября 2008

хмм, эти другие клиенты тоже используют C # / .NET?

Метод не разрешен -> это может быть служба REST вместо веб-службы SOAP?

...