我使用asp.net scriptmanager进行Ajax调用。在场景后面获取数据并将其作为查询字符串添加到url中并进行调用。但是,当数据非常大时,它会失败。
我认为如果我可以增加查询字符串maxwidth,它将会解决。如何在asp.net中更改maxquerystring大小。
此外,错误不是由于浏览器的限制,因为服务器会抛出它。
服务是为ajax公开的WCF服务。
错误是
Exception Type: System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]
Exception: Buffer cannot be null.
Parameter name: buffer
Source: DefaultPage
Stack Trace:
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
所以在这里它形成了像http://site/ajax.svc?data=xxxxxxxxxxxxxxxxxxxx
这样的网址大意味着它长达1000个字符。
我可以在哪里设置允许的最大网址大小。
我理解这种数据需要使用post而不是get来提交,但这就是scriptmanager的工作原理,所以希望通过扩展这个限制来获得解决方案。
答案 0 :(得分:2)
查询字符串的最大长度不能以编程方式设置,它由请求中涉及的Web服务器和浏览器确定。
检查维基百科条目的兼容性问题部分,了解详细信息和其他资源的链接。
答案 1 :(得分:2)
您可以考虑使用$ .POST