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

Dea*_*tes 66 asp.net web-services asmx

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

<webServices>
    <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
    </protocols>
</webServices>
Run Code Online (Sandbox Code Playgroud)

..到machine.config或web.config.我的问题是,对于每个Web服务或Web方法级别而不是每个应用程序或计算机,是否可以启用HTTP POST和GET请求?

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

tan*_*hos 49

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

[ScriptMethod(UseHttpGet = true)]
public string HelloWorld()
{
    return "Hello World";
}
Run Code Online (Sandbox Code Playgroud)

  • 您好,如何获取传递给此方法的参数? (2认同)

BLΞ*_*ine 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>
Run Code Online (Sandbox Code Playgroud)

  • @vapcguy这取决于您要完成的工作。如果您有多种服务,但只有一项需要支持`GET`,则仅允许一项。如果您不在乎它是否适用于所有这些,那么可以将其放在常规的“ system.web”部分中 (2认同)