Fiddler或C#中Post的限制是什么

时间:2016-06-03 07:43:25

标签: c# asp.net-web-api odata fiddler

当我从客户端发送大图像(627 kb)作为二进制文件时,我试图测试我的服务器响应500错误的原因。所以,我把客户端在fiddler中发送的值带到服务器所在的同一台机器上。 我一直在增加&减少二进制值的数量。我用断点标记post方法的开头,然后在每次测试时检查对象是否为null:enter image description here

实体有一个名为value的属性:String类型的ImageDataString,它包含二进制值。

我注意到如果我在fiddler中的箭头处向我的帖子增加1个字符,则该对象变为null enter image description here

谁的限制使帖子请求,Fiddler或C#OData Api无效?事实上,我的形象体不仅仅是那些长度。它可以高达10毫克,我该怎么做才能发送大图像,并能够测试用小提琴发送他们的二进制文件!?

1 个答案:

答案 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(内部服务器错误)。