有一个名为 的配置值maxRequestLength
。在配置文件中,它看起来像这样:
<configuration>
<system.web>
<httpRuntime maxRequestLength="2048576" />
</system.web>
</configuration>
如何以maxRequestLength
编程方式设置的值?
你不能!
maxRequestLength
在调用 actual 之前由HttpWorkerRequestHttpHandler
处理,这意味着在请求到达服务器并由相应的 asp.net worker 处理之后执行通用处理程序或页面。您无法控制maxRequestLength
页面代码或 HttpHandler!
如果您想在代码中读取请求长度,您可以通过 aHttpModule
或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
in设置web.config
为最大值并在代码中调用工作人员的CloseConnection方法!
在快速谷歌之后,您似乎无法以编程方式进行操作。见这里。
两种可能的解决方案:
<location>
web.config 中的元素来配置特定路径。