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

我想为HTTP POST和GET请求启用ASP.NET经典(ASMX)Web服务。 我知道这可以在一台机器或应用程序级别通过添加…

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

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

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

尝试通过你的方法声明UseHttpGet。

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

其实,我发现了一个有点古怪的方法来做到这一点。 添加协议到你的web.config,但在一个位置元素。 指定webservice位置作为path属性,如下所示:

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