请求实体对于自托管 ASP.Net Web API 来说太大

Posted

技术标签:

【中文标题】请求实体对于自托管 ASP.Net Web API 来说太大【英文标题】:Request Entity Too Large for Self Hosted ASP.Net Web API 【发布时间】:2013-10-27 12:31:14 【问题描述】:

我有 大量 json 需要发布到 自托管 ASP.Net Web API 服务。

我收到“Status Code:413 Request Entity Too Large”消息。

尝试在webapi服务项目的app.config中放入如下内容。

<system.web>
    <compilation debug="true" targetFramework="4.0" />
    <customErrors mode="Off"/>
    <httpRuntime
        maxRequestLength="2147483647"
        executionTimeout="300" />
</system.web>

这没有帮助。

我正在考虑以下两个选项。

    可能使用LZW compression library解压javascript中的数据,接收后在webapi端解码。 找到一种方法让 webapi 基础架构允许大量数据

我更喜欢第二个选项,但还没有找到如何实现它。

任何指针?

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,并且能够对代码进行更改。

var config = new HttpSelfHostConfiguration(host);
config.MaxReceivedMessageSize = 2147483647; // use config for this value
/*
other setup for the config
*/
using (var server = new HttpSelfHostServer(config))

    server.OpenAsync().Wait();
    Console.WriteLine("Insight.Web");
    Console.ReadLine();

【讨论】:

这是正确的答案。在您回复之前,我在浏览 config 上的属性时不小心弄明白了,并且工作得像个魅力。

以上是关于请求实体对于自托管 ASP.Net Web API 来说太大的主要内容,如果未能解决你的问题,请参考以下文章

csharp 自托管ASP.NET Web API的示例

强大的自托管服务器的最佳选择:WCF 与 ASP.NET Web Api

使用 OData 的 ASP.Net Core Web API 实现对于单个实体 URI 失败

试图从asp.net web api self host中的请求中获取用户代理

一张图理清ASP.NET Core启动流程

web api - asp.net 身份令牌即使对于后续请求也会过期