iis 标记为[FromBody]的参数始终为null

amrnrhlw  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(162)

这个问题真的很难理解。可用的内容:

  • ASP NET Web API 4.8.
  • IIS 10.0。
  • 复杂类型有3个大字符串字段-base64中的照片(和其他字段,但我认为问题不在于它们)
  • POST方法,其中复杂类型的变量标记为[FromBody]属性
  • NRE,因为方法中的复杂类型参数为null

我通过Postman发送请求,使用我的API的应用程序发送带有json主体的请求。发送的原始数据正确。但是当涉及到调用方法时,我得到的是一个包含null的对象,而不是反序列化的对象。根据我的假设,这是因为我提到的base64字符串太大(发送空字符串而不是真实的base64确实证实了这一点)。但我通过Web.configmaxAllowedContentLength参数设置得尽可能大。这没有任何效果。
在这种情况下,最有趣的事情是,本地和测试服务器上相同版本的代码都工作正常。我能错过什么?注:有趣的情况-在您重新启动IIS网站后,在此方法中的第一个查询工作正常,然后抛出NRE

n3h0vuf2

n3h0vuf21#

将**uploadReadAheadSize参数设置为30 MB后,该方法正常工作。对于类似的复杂和大型对象和查询,值得考虑Web.config中的设置,如
1.
maxRequestLength**
1.maxAllowedContentLength
1.uploadReadAheadSize
1.gcAllowVeryLargeObjects enabled="true"

相关问题