相关疑难解决方法(0)

我可以在web.config中为maxJsonLength设置无限长度吗?

我正在使用jQuery的自动完成功能.当我尝试检索超过17000条记录的列表(每条记录的长度不超过10条)时,它超出了长度并抛出错误:

异常信息:
异常类型:InvalidOperationException
异常消息:使用JSON JavaScriptSerializer进行序列化或反序列化时出错.字符串的长度超过maxJsonLength属性上设置的值.

我可以设置无限长度maxJsonLengthweb.config?如果没有,我可以设置的最大长度是多少?

asp.net asp.net-mvc json

648
推荐指数
18
解决办法
54万
查看次数

如何压缩JSON响应

我使用了很多ajax调用来查询数据库,我得到大文本(json)响应.我想压缩回复.

Gzip的JavaScript实现中,有一种使用javascript压缩文本的好方法.

问题是我想在我的aspx服务器上压缩响应并用javascript对其进行解压缩.因此我需要lzw_encode在我的asp.net服务器上运行该函数.II应该将该功能转换为C#还是有另一种方式?

如果您不想配置IIS或更改标题,请使用上面的链接,您可以使用以下命令压缩服务器上的代码:

C#

    public static string Compress(string s)
    {
        var dict = new Dictionary<string, int>();
        char[] data = s.ToArray();
        var output = new List<char>();
        char currChar;
        string phrase = data[0].ToString();
        int code = 256;

        for (var i = 1; i < data.Length; i++){
            currChar = data[i];
            var temp = phrase + currChar;
            if (dict.ContainsKey(temp))                
                phrase += currChar;                
            else
            {
                if (phrase.Length > 1)                    
                    output.Add((char)dict[phrase]);                    
                else                    
                    output.Add((char)phrase[0]);                    
                dict[phrase + currChar] = code;
                code++;
                phrase = …
Run Code Online (Sandbox Code Playgroud)

javascript c# compression asp.net

19
推荐指数
1
解决办法
2万
查看次数

MVC 4 - GZIP压缩JSON ajax动作结果

问题

我在IIS 7.5上运行的MVC 4应用程序上有一个Telerik MVC UI网格,它可能通过AJAX返回大量JSON数据,极端情况下为800kb或更多.由于有效载荷可能很大,我想GZIP它.对于我的生活,我无法让它发挥作用.

控制器动作是:

public ActionResult _CustomBinding([DataSourceRequest] DataSourceRequest request, SearchMemberModel search)
{
    //Do some stuff

   return Json(result);
}
Run Code Online (Sandbox Code Playgroud)

提琴手报道: 在此输入图像描述

已经尝试过什么

我确保在IIS中启用了动态和静态压缩:

在此输入图像描述

App Web.Config修正:

  <system.webServer>
    <serverRuntime frequentHitThreshold="1" frequentHitTimePeriod="10:00:00" />

    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="false">
      <remove name="FormsAuthentication" />
    </modules>

    <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">

      <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="9"  />
      <dynamicTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="application/json" enabled="true" />
        <add mimeType="*/*" enabled="false" />
      </dynamicTypes>
      <staticTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" …
Run Code Online (Sandbox Code Playgroud)

c# iis model-view-controller json gzip

13
推荐指数
1
解决办法
1万
查看次数

ASP.NET MVC - 压缩+缓存

我已经看到了向ASP.Net MVC输出添加GZIP/DEFLATE压缩的一些选项,但它们似乎都在运行中应用了压缩...因此不需要缓存压缩内容.

任何启用压缩页面输出缓存的解决方案?优选地,在代码中,使得MVC代码可以检查页面是否已经改变,并且如果不是,则发出预压缩的高速缓存的内容.

这个问题也可以适用于常规的asp.net.

compression asp.net asp.net-mvc http-compression asp.net-mvc-2

11
推荐指数
1
解决办法
3988
查看次数

ASP.NET MVC - 在RegisterGlobalFilters()中使用ActionFilterAttribute时,Response.Filter为null

我想在我的网站上使用G-ZIP,我用Google搜索了以下代码:

public class CompressAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var acceptEncoding = filterContext.HttpContext.Request.Headers["Accept-Encoding"];
        if (!string.IsNullOrEmpty(acceptEncoding))
        {
            acceptEncoding = acceptEncoding.ToLower();
            var response = filterContext.HttpContext.Response;
            if (acceptEncoding.Contains("gzip"))
            {
                response.AppendHeader("Content-encoding", "gzip");
                response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
            }
            else if (acceptEncoding.Contains("deflate"))
            {
                response.AppendHeader("Content-encoding", "deflate");
                response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我将属性设置为Controller或Action时,它工作正常.

[Compress]
public class PostController : Controller
Run Code Online (Sandbox Code Playgroud)

我不想在每一段代码上都这样做,所以我在这里注册了这个属性

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new HandleErrorAttribute());
    filters.Add(new CompressAttribute());
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行应用程序时,这行代码出现异常:

response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
Run Code Online (Sandbox Code Playgroud)

response.Filter为null.

我想知道为什么会这样,以及如何解决这个问题.谢谢! …

asp.net asp.net-mvc gzip action-filter

8
推荐指数
1
解决办法
2016
查看次数

在ASP.NET MVC 3中GZipping内容文件

我使用以下属性来装饰我的BaseController类.

public class OutputCompressAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        string encodingsAccepted = filterContext.HttpContext.Request.Headers["Accept-Encoding"];
        if (string.IsNullOrEmpty(encodingsAccepted))
            return;

        encodingsAccepted = encodingsAccepted.ToLowerInvariant();
        HttpResponseBase response = filterContext.HttpContext.Response;

        if (encodingsAccepted.Contains("gzip"))
        {
            response.AppendHeader("Content-encoding", "gzip");
            response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
        }
        else if (encodingsAccepted.Contains("deflate"))
        {
            response.AppendHeader("Content-encoding", "deflate");
            response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,即使这对视图和每个操作结果都很好,该属性也不适用于/Content项目文件夹中的内容.我想知道我是如何做到这一点,以便文件Content夹中的文件使用控制器,或以某种方式绑定或钩住允许我将这些过滤器附加到响应头的东西.

c# asp.net-mvc gzip asp.net-mvc-3

4
推荐指数
1
解决办法
3716
查看次数