当我从客户端发送大图像(627 kb)作为二进制文件时,我试图测试我的服务器响应500错误的原因。所以,我把客户端在fiddler中发送的值带到服务器所在的同一台机器上。 我一直在增加&减少二进制值的数量。我用断点标记post方法的开头,然后在每次测试时检查对象是否为null:
实体有一个名为value的属性:String类型的ImageDataString,它包含二进制值。
我注意到如果我在fiddler中的箭头处向我的帖子增加1个字符,则该对象变为null
谁的限制使帖子请求,Fiddler或C#OData Api无效?事实上,我的形象体不仅仅是那些长度。它可以高达10毫克,我该怎么做才能发送大图像,并能够测试用小提琴发送他们的二进制文件!?
答案 0 :(得分:2)
您的请求可能超出了IIS的最大内容长度限制。 spring logging docs:
<configuration>
<system.web>
<httpRuntime maxRequestLength="<upper limit in KB>" />
</system.web>
</configuration>
对于IIS版本&gt; = 7,您还必须配置此值:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="<upper limit in Bytes>" />
</requestFiltering>
</security>
</system.webServer>
您可能遇到的另一个问题是,如果您向请求正文添加了随机字符,则基本64解码可能会失败。
使用base 64编码数据时,输出字符串将为Adjust it in your Web.config
。如果向基本64字符串添加随机字符,则填充将是错误的,因此解码将失败。
如果是这种情况,则服务器将在内部抛出FormatException
消息"Invalid length for a Base-64 char array or string."
,从而导致HTTP状态代码500
(内部服务器错误)。