WCF Запрос не выполнен с состоянием HTTP 405: метод не разрешен - PullRequest
7 голосов
/ 15 декабря 2008

У меня есть служба WCF, размещенная в службе Windows, и использующая конечную точку BasicHttp для обслуживания подключенных к ней устройств Windows Mobile.

Проблема в том, что с эмулятором устройства. Я могу подключиться к сервису и использовать его без проблем, но с реальным устройством. Я получаю ошибку:

WCF Запрос не выполнен с состоянием HTTP 405. Метод не разрешен.

Я использовал следующий код для реализации службы.

BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
basicHttpBinding.UseDefaultWebProxy = false;

m_ServiceHost.AddServiceEndpoint(typeof(IKooft), basicHttpBinding, "KooftService");
m_ServiceHost.Open();

Как я могу решить эту проблему?

Ответы [ 3 ]

4 голосов
/ 19 января 2009

Проверьте правильность ваших расширений IIS, особенно для .wsdl:

В IIS:

  • Посмотрите на свойства для вашего сайта.
  • На вкладке Домашний каталог нажмите конфигурации.
  • Нажмите добавить (мой путь "C: \ Program Files (x86) \ Common Файлы \ MSSOAP \ BINARIES \ SOAPIS30.DLL ")
  • Установите расширение на .WSDL и разрешите «Получить» и «Опубликовать»
  • Выбрать «Скрипт» Engine "и" Убедитесь, что файл существует "

Так и должно быть.

1 голос
/ 01 апреля 2015

Если вы используете службу WCF REST, вы должны определить свой контрактный метод следующим образом:

[OperationContract]
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]
string CheckService();

Особо отметим, что атрибут WebInvoke и Method="POST".

0 голосов
/ 27 марта 2009

При использовании WCF может также потребоваться сопоставить тип файла .svc с aspnet_isapi.dll в IIS.

...