我想为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#编写。
答案 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>