有一个名为maxRequestLength
的配置值。在配置文件中,它看起来像这样:
<configuration>
<system.web>
<httpRuntime maxRequestLength="2048576" />
</system.web>
</configuration>
如何以编程方式设置maxRequestLength
的值?
答案 0 :(得分:6)
你不能!
在调用实际maxRequestLength
之前,HttpWorkerRequest处理 HttpHandler
,这意味着在请求到达服务器之后执行通用处理程序或页面已由相应的asp.net worker处理。您无法控制页面代码中的maxRequestLength
或HttpHandler!
如果要在代码中读取请求长度,可以通过HttpModule
或global.asax
文件来实现,这是在global.asax中完成的:
protected void Application_BeginRequest(object sender, EventArgs e)
{
IServiceProvider provider = (IServiceProvider)HttpContext.Current;
HttpWorkerRequest workerRequest = (HttpWorkerRequest)provider.GetService(typeof(HttpWorkerRequest));
if (workerRequest.HasEntityBody())
{
long contentLength = long.Parse((workerRequest.GetKnownRequestHeader(HttpWorkerRequest.HeaderContentLength)));
}
}
如果请求长度达到所需值,您可以将maxRequestLength
中的web.config
设置为其最大值,并在代码中调用worker的CloseConnection方法!
答案 1 :(得分:3)
快速谷歌后,似乎你无法以编程方式进行。 See here
两种可能的解决方案:
<location>
元素配置特定路径。