首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式设置maxRequestLength

以编程方式设置maxRequestLength
EN

Stack Overflow用户
提问于 2012-12-26 02:11:13
回答 2查看 5.9K关注 0票数 4

有一个名为maxRequestLength的配置值。在配置文件中,它看起来像这样:

代码语言:javascript
复制
<configuration>
  <system.web>
    <httpRuntime maxRequestLength="2048576" />
  </system.web>
</configuration>

如何以编程方式设置maxRequestLength的值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-26 02:33:53

你不能!

maxRequestLength在调用实际HttpHandler之前由HttpWorkerRequest处理,这意味着在请求命中服务器已由相应的asp.net工作进程处理之后,将执行通用处理程序或页面。您不能在页面代码或HttpHandler中对maxRequestLength进行任何控制!

如果您想在代码中读取请求长度,您可以通过HttpModuleglobal.asax文件来实现,这是在global.asax中实现的方式:

代码语言:javascript
复制
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)));
    }
}

您可以将web.config中的maxRequestLength设置为其最大值,如果请求长度达到所需的值,则在代码中调用工作者的CloseConnection方法!

票数 6
EN

Stack Overflow用户

发布于 2012-12-26 02:23:43

在快速谷歌之后,你似乎不能通过编程来做这件事。See here

两种可能的解决方案:

  1. 使用本地化的web.config配置特定目录。
  2. 使用web.config中的<location>元素配置特定路径。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14032918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档