尝试发布到Web服务时不允许405方法错误

时间:2009-02-26 19:16:39

标签: asp.net jquery wcf json

我借用以下代码尝试使启用ajax的WCF服务工作,因为我不断获取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

我见过搜索过的&amp;今天整天都在网上试图找出问题所在。我看过.svc未在IIS中使用POST动词映射的帖子。它不在我的开发PC上,但它在服务器上。两者都给出了405错误。

这是否与web.config中允许的动词有关?

到目前为止,我有一个漂亮的网站。有这项工作(很快)将真正给人留下好印象。

谢谢!

2 个答案:

答案 0 :(得分:1)

您的web.config服务模式中是否包含此行?

<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
</serviceHostingEnvironment>

答案 1 :(得分:1)

您需要将此属性添加到您的方法中:

ScriptMethodAttribute