c# - 向breececontroller发送大的json数据失败

标签 c# asp.net-web-api breeze asp.net-web-api2

我正在使用 Breezejs 来处理 Web 应用程序上的实体。

具体来说,我从 Angular HotTowel 模板开始。

我遇到的问题是,我正在发送一个大型 json 对象数组(长度约为 17000),因此在我的 Controller 上,我在接收此信息的参数上获取 null。

当我尝试向包含 5000 个对象的数组发送较少数据时, Controller 参数将使用对象正确设置。

我的 Controller

[BreezeController]
public class SoftProductsController : ApiController
{
    private readonly EFContextProvider<Context> contextProvider = new EFContextProvider<Context>();

    [HttpGet]
    public string Metadata()
    {
        return this.contextProvider.Metadata();
    }

    [HttpPost]
    public SaveResult SaveChanges(JObject saveBundle)
    {
        //Here saveBundle is NULL
        return this.contextProvider.SaveChanges(saveBundle);

    }
}

这可能与使用大型 json 数据时 WebApi 上的某些 json 反序列化有关吗?

我尝试在 web.congif 上设置此选项,但没有成功

<appSettings>
    <add key="aspnet:MaxJsonDeserializerMembers" value="20000"/>
</appSettings>

我正在使用 .NET 4.5

有什么想法吗?

最佳答案

我的问题是 ASP.NET 对 requestLenght 的默认限制。 增加 web.config 的限制允许 Breeze 发布大数据。 (默认大小为 4096 KB)

<system.web>
    <httpRuntime targetFramework="4.5" maxRequestLength="5120" />
</system.web>

https://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.maxrequestlength(v=vs.110).aspx

关于c# - 向breececontroller发送大的json数据失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28545562/

相关文章:

c# - 如何使用 SQL Server 创建自定义 ASP.NET 身份提供程序?

c# - 在 web/api 应用程序中连接到 Cassandra 的正确方法

asp.net - MVC ApiController JSON 对象根

breeze - 如何在 BreezeJs 中正确发送 Action 参数和查询

c# - 转到另一页时,在单击按钮时播放声音C#

c# - Specflow 特征文件 - 可能有多行示例

c# - 当应用程序处于焦点状态时,如何捕获 WinForms 应用程序上的键?

c# - 在 ASP.NET MVC 6 中创建 API 代理

breeze - 在breeze.js中搜索文本

odata - 将 Breeze 与 OData 结合使用