ASMX网络服务和HTTP GET
问题描述:
我想创建一个ASMX webservice,可以执行HTTP GET请求。我有以下简单的代码片段来说明我已经完成了什么。ASMX网络服务和HTTP GET
using System.Web.Script.Services;
...
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public string HelloWorld(HttpContext context)
{
return context.Request.Params.Get("userId").ToString();
}
除此之外,我还添加了以下节点在我的Web.config文件
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
,我现在面临的问题是,我经常收到可怕的“ System.Web.HttpContext cannot be serialized because it does not have a parameterless constructor
“错误消息,每当我尝试调试此webservice。我不知道问题是什么,我真的很感激任何帮助我摆脱这个困境。我意识到HTTP GET请求应该是非常简单的,但我真的不确定我的挫折的原因是什么。
答
我想你想
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public string HelloWorld(int userId)
{
return userId.ToString();
}
您可以在函数签名中指定的参数,您可以访问的HttpContext作为Context
(基类WebService的一个属性),如果你需要它。
以我个人的经验,[ScriptMethod(UseHttpGet = true)]完全不影响服务方法。它不会强制该方法只使用GET,如果没有它,只要您允许它在您的web.config中,您仍可以使用GET调用该方法 – Sal 2014-05-28 11:45:14