我有一个非常简单的dto
public class RisRequest
{
public string APIKey { get; set; }
public string Message { get; set; }
}
一个不错的简单网页api
[HttpPost]
public HttpResponseMessage rad(RisRequest request)
99%的有效时间。但是当我点击Message超过标准(> 100,000个字符和112kb)的请求时,此参数为null。请注意,APIKey仍然很好,我的RisRequest对象不是null,而只是eMessage参数。
我做了一些谷歌搜索并尝试了一堆选项
根据This link我尝试设置httpconfig缓冲区
config.Formatters.FormUrlEncodedFormatter.ReadBufferSize = int.MaxValue/10;
我尝试了this link
中的web.config选项<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483648" />
</requestFiltering>
</security>
</system.webServer>
和
<system.web>
<httpRuntime maxRequestLength="2097152" />
</system.web>
也没有运气。所有其他一些人都提出了相同的变化。 我出错的任何想法?
感谢
答案 0 :(得分:1)
这是一个Windows限制。在您的网址中,参数是路径的一部分。窗口限制路径段长度。
你应该在注册表中更改UrlSegmentMaxLength
。
在以下注册表项中创建DWORD
值
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
UrlSegmentMaxCount
最大网址路径段数。如果为零,则计数受限 ULONG的最大值。
有效值范围0 - 16,383