71

我想为 HTTP POST 和 GET 请求启用 ASP.NET 经典 (ASMX) Web 服务。我意识到这可以通过添加...在机器或应用程序级别上完成

<webServices>
    <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
    </protocols>
</webServices>

.. 到 machine.config 或 web.config。我的问题是可以按 Web 服务或 Web 方法级别而不是按应用程序或机器启用 HTTP POST 和 GET 请求吗?

我的 Web 服务是使用 net 3.5sp1 用 c# 编写的。

4

2 回答 2

53

尝试在您的方法上声明 UseHttpGet 。

[ScriptMethod(UseHttpGet = true)]
public string HelloWorld()
{
    return "Hello World";
}
于 2009-03-06T14:08:30.057 回答
46

实际上,我找到了一种有点古怪的方法来做到这一点。将协议添加到您的 web.config,但在 location 元素中。将 web 服务位置指定为路径属性,如下所示:

<location path="YourWebservice.asmx">
  <system.web>
    <webServices>
      <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
      </protocols>
    </webServices>
  </system.web>
</location>
于 2011-03-21T11:52:31.970 回答