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