Ошибка метода 405 при попытке публикации на веб-сервис - PullRequest
2 голосов
/ 26 февраля 2009

Я позаимствовал следующий код, чтобы попытаться заставить службу WCF с поддержкой ajax работать, так как я получал ошибку 405, недопустимая метод:

$('#btnSave').click(function (e) {
  $.ajax({
    type: "POST",
    url: "AjaxWcf.svc/ConnectionTest",
    contentType: "application/json; charset=utf-8",
    data: '{"name":"Elemenex"}',
    dataType: "json",
    success: function (msg) {
      alert(msg.d);
    },
    error: AjaxFailed
  });

  function AjaxFailed(result) {
    alert(result.status + ' ' + result.statusText);
  }
});

В коде службы у меня есть следующее:

<OperationContract()> _
<WebInvoke(Method:="POST")> _

Public Function ConnectionTest(ByVal name As String) As String
    Return String.Format("Hello {0}", name)
End Function

Я видел, как сегодня весь день искал вверх и вниз по сети, пытаясь выяснить, в чем может быть проблема. Я видел сообщения, где .svc не сопоставляется с глаголом POST в IIS. Это не на моем компьютере разработки, но это на сервере. Оба дают 405 ошибок.

Может ли это быть как-то связано с разрешением глаголов в web.config?

У меня до сих пор красивый сайт, и эта работа (и скоро) действительно произведет хорошее впечатление.

Спасибо!

Ответы [ 2 ]

1 голос
/ 26 февраля 2009

Вам необходимо добавить этот атрибут в ваш метод:

ScriptMethodAttribute 
1 голос
/ 26 февраля 2009

У вас есть эта строка в вашей web.config сервисной модели?

<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
</serviceHostingEnvironment>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...