【发布时间】:2020-10-02 16:41:03
【问题描述】:
我试图在一个对象中发布 2 个图像(4MB + 大小)的 base64 字符串。这是模型示例:
public class DemoModel
{
public string No{ get; set; }
public string OneBase64 { get; set; }
public string TwoBase64 { get; set; }
}
这是我尝试在 webapi 控制器中捕获 POST ed 数据的方式。
[HttpPost]
public string PostSimpleData([FromBody] DemoModel data)
{
// do something
}
但是当我发布 json 时,它会显示序列化/反序列化错误。
然后我在 webconfig 中添加了几行来增加响应大小和 json 大小。
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483647" />
</webServices>
</scripting>
</system.web.extensions>
和
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483647" />
</requestFiltering>
</security>
和
<httpRuntime targetFramework="4.5" maxRequestLength="2147483647" />
还是没有结果。 如果我发布除 Base64 数据之外的任何内容,它会自动序列化并与控制器方法中的对象绑定。
这是我要发布的 JSON。
{
"NO" : "01",
"OneBase64" : "Some base 64 Data",
"TwoBase64" : "Some base 64 Data"
}
感谢任何形式的帮助。
【问题讨论】:
-
我相信您的 web.config 中的设置适用于 WebMethod,但不适用于 Web API 或 MVC。您将其标记为 MVC 和 Web API - 您使用的是哪个?您需要找到一种方法来调整框架正在使用的序列化程序的最大大小。
-
我正在使用 Web Api 2。你能建议我应该如何调整序列化程序的最大大小吗?我也使用了“
”。 -
this 能解决您的问题吗?
-
@mason 我已经试过了。我添加了这一行,但没有。没有运气。
标签: c# asp.net-web-api