支持ASP.NET Ajax的WCF服务,如何“发布”而不是“获取”?

时间:2010-01-10 22:07:26

标签: asp.net ajax wcf http asp.net-ajax

我正在使用一个简单的启用Ajax的WCF服务。我正在客户端创建一个XML字符串并执行get(默认情况下)。这是代码。我看到'WebGet'属性,但没有'WebPost'

  [OperationContract, WebGet(ResponseFormat = WebMessageFormat.Json)]
    public string PrepareDoc(string inputXML)
    {
        var arg = new CommandArg();
        arg.ParamCollection.Add("inputXML", inputXML);
        var result = LetterBLL.DoLetter(new PrepareDocCmd(), arg);


        return result.ScalarResult.ToString();
    }

这将返回一个我可以在客户端上评估的序列化字符串。这一切都很好。我确实有一个问题,当inputXML超过IE Url最大长度2048.我得到一个javascript错误说资源不可用。除了使URL更小之外的解决方案是切换到POST。我怎样才能做到这一点?我也应该将json发送到服务而不是XML

字符串

在客户端上,我在脚本管理器中注册服务引用,以便创建代理对象。我从这样的javascript调用服务。 _prepareDoc引用客户端对象内的服务方法。

 this._prepareDoc(sb.toString(), successFunc, failFunc, this);

如何更改此帖子?另外在服务器上我需要更改什么?我目前正在接受一串XML作为输入。

非常感谢任何提示, 〜在圣地亚哥

1 个答案:

答案 0 :(得分:3)

怎么样:

[OperationContract,
 WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json)]