为HTTP POST / GET请求启用ASP.NET ASMX Web服务

时间:2009-03-06 13:44:06

标签: asp.net web-services asmx

我想为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请求,而不是按应用程序或计算机启用?

我的网络服务使用net 3.5sp1以c#编写。

2 个答案:

答案 0 :(得分:49)

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

[ScriptMethod(UseHttpGet = true)]
public string HelloWorld()
{
    return "Hello World";
}

答案 1 :(得分:42)

实际上,我发现了一种有点古怪的方法。 将协议添加到web.config,但在location元素中。将webservice位置指定为path属性,如下所示:

<location path="YourWebservice.asmx">
  <system.web>
    <webServices>
      <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
      </protocols>
    </webServices>
  </system.web>
</location>