我正在从DB加载一个XML文件,当它变大时我在web.config中使用了maxJsonLength属性..但它完全被忽略了..在线查看了问题并完成了所有可能而且它无法正常工作。< / p>
这是我的web.config文件
<system.web> <compilation debug="true" targetFramework="4.0" /> <pages theme="Main" styleSheetTheme="Main" /> <customErrors mode="Off" /> </system.web> <system.web.extensions> <scripting> <scriptResourceHandler enableCompression="true" enableCaching="true"/> <webServices> <jsonSerialization maxJsonLength="50000000"/> </webServices> </scripting>
当我从DB加载xml文件时,它给了我一个不完整的XML文件。通常当我收到这个xml文件时,我将它拆分成一个较小的部分并发送给jquery进行分区。所以它可以处理大的xml数据..但是再次因为maxJsonLength属性被忽略了它不起作用.. < / p>
当我在网上查看时,有些帖子说我必须硬编码,所以我在我的web配置文件的appsettings中添加了一个字段,如下所示
<appSettings> <add key="maxJsonLength " value="5000000" />
然后在app-start的global.asax中我添加了这段代码:
// Code that runs on application startup var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); serializer.MaxJsonLength = Convert.ToInt32(ConfigurationManager.AppSettings[0]);
再没有什么事情发生......也许我把这个代码放在错误的地方......
我将非常感谢你的帮助..谢谢
//更新
当我在没有JSON的情况下对数据库使用相同的调用时,它给了我相同的短xml文件,只返回2033个字符,所以我猜这个问题可能是一个SQL问题..这里是我的存储过程参考
ALTER PROCEDURE dbo.LoadMarkers @CategoryID int = -1,@ Marker int = -1 AS
选择m.ID为mid,
(@MarkerID!= -1然后m.MarkerImage结束时的情况)为mimg,
(@MarkerID!= -1然后m.Introduction结束时的情况)as intr,
(@MarkerID!= -1然后m.Title结束时的情况)为t
,m.Latitude as lt,m .Longitude as lg,
m.CategoryID为cid,
(@MarkerID!= -1然后c.Name结束时的情况),
c.MarkerImage为cimg
from Marker m join Category c on c.ID = m.CategoryID
其中categoryID =(@CategoryID!= -1然后@CategoryID
的情况else categoryID end) and m.ID = (case when @MarkerID != -1 then @MarkerID else m.ID end)
表示XML路径('Marker'),Root('Markers')
RETURN
答案 0 :(得分:0)
这不是JSON问题,它使用普通的执行语句而不是ExecuteXML来读取SQL结果。
此问题现已关闭。
感谢