如何从 web.config 读取系统值并在 ASP.NET MVC C# 方法中使用

2023-12-28

我正在开发一个 ASP.NET MVC3 Web 应用程序(不是我编写的),其最大上传大小为 100MB。现在,此 Web 应用程序已安装在客户的服务器计算机上,因此如果可以为每个客户配置此值最大上传大小,那就太好了。如果需要,他们可以编辑 Web 应用程序的 web.config。

现在 web.config 中有一个值,如下所示:

<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="104857600" />
        </requestFiltering>
    </security>
</system.webServer>

这里还有另一个看起来相似的值:

<system.web>
    <httpRuntime maxRequestLength="104857600" executionTimeout="360" />
</system.web>

104857600 字节似乎是 100MB 文件上传限制。然而,在更改该值时,我发现这不是权威值,并且它不遵守新的限制。因此,经过更多挖掘后,我发现 C# 代码中的其他地方是一个硬编码值public const double MaxContentSize = 104857600另一种 C# 方法是使用该值接受/拒绝 Ajax 文件上传。

所以我想我想做的是替换代码中的硬编码数字,以便它从 web.config 中的值读取。那么至少任何人都可以在部署网站时更改 web.config 中的该值。

你能做这样的事情吗?

MaxContentSize = ConfigurationManager.systemWeb.httpRuntime['maxRequestLength'];

我在 web.config 中看到了一些使用 appSettings 的示例,例如

<appSettings><add key="MySetting" value="104857600" /></appSettings>

然后像这样访问它:

ConfigurationManager.AppSettings["MySetting"]

但这意味着要在其中添加自定义值,现在我们在 web.config 中有 3 个位置可以更改它。有人知道如何正确地做到这一点吗?

非常感谢


你可以这样做:

int maxRequestLength = 0;
HttpRuntimeSection section =
ConfigurationManager.GetSection("system.web/httpRuntime") as HttpRuntimeSection;
if (section != null) 
    maxRequestLength = section.MaxRequestLength;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 web.config 读取系统值并在 ASP.NET MVC C# 方法中使用 的相关文章

随机推荐

  • 班级助手有什么用处?

    Delphi 可能还有很多其他语言 有类助手 它们提供了一种向现有类添加额外方法的方法 无需创建子类 那么 类助手有什么用处呢 我正在使用它们 To 插入枚举器 http 17slon com blogs gabr 2007 03 fun
  • GCM 寄存器阻塞 AsyncTask,直到发生超时

    我正在尝试使用 GCM 获取我的设备注册 ID 我执行此操作的代码包含在从我的主线程调用的 AsyncTask 中 主要代码 try String deviceId new Gcm execute this activity get 5 T
  • 迭代哈希集合

    Journal gt 4 785 0 13 21 9165000915527 14 213 008995056152 15 50 074499130249 如何在 Ruby 中迭代此哈希 以及如何分离键和值 Ruby 有一个统一的迭代接口
  • 如何在 Flask 中“jsonify”列表? [复制]

    这个问题在这里已经有答案了 现在Flaskjsonify 列表时会引发错误 我知道可能存在安全原因https github com mitsuhiko flask issues 170 https github com mitsuhiko
  • 如何使用 imagemagick 将两个文件夹中的图像并排合并到一起?

    我有两个文件夹 A and B 以及具有相应名称的图像文件 例如 每个都包含标记为01 png 02 png 03 png etc 我怎么能够merge相应的文件 这样我就有了第三个folder C其中包含所有合并的照片 以便两张原件并排放
  • Github API 响应“内容无效 Base64”

    使用 API 将某个非常简单的内容发布到 github 时 我收到 内容不是有效的 Base64 错误 内容是 unit li class s clearfix li 我正在使用 Base64 urlsafe encode64 对内容进行编
  • 算法优化-多点之间的最短路径

    问题 我有大量的点集合 这些点中的每一个都有一个列表 其中包含对其他点的引用 以及它们之间的距离已经计算并存储 我需要确定从起点开始并经过特定数量的点到达任何目的地的最短路线 例如 我正在度假 并且住在某个特定的城市 我正在进行一次单程旅行
  • 是否可以从 aspnet core api 中的中间件向控制器发送值?

    我想知道是否可以将值从中间件发送到controllerAPI 例如 我想捕获一个特定的标头并将其发送到控制器 像这样的东西 public class UserTokenValidatorsMiddleware private readonl
  • JSP简单密码加密解密

    我需要加密密码以插入数据库 此外 当我需要该密码时 我需要解密该值 执行此操作的简单方法是什么 注意 此操作不必非常安全 请不要实施您当前的计划 而应该使用信息摘要 http docs oracle com javase 7 docs ap
  • 表格内的绝对定位

    我需要在 td 内使用绝对定位来定位某些内容 为了解决 td 在将其设置为相对时未定义的事实 我在 td 内使用设置为相对的 div 然后在该 div 内将内部 div 设置为绝对 当我有内容填满 td 时 这一切都非常有效 当我将 td
  • 使用 Spring AMQP 接收和发送 Java 对象

    我想实现 Spring AMQP 示例 用于使用侦听器发送和接收 Java 对象 我试过这个 发送Java对象 ConnectionFactory connectionFactory new CachingConnectionFactory
  • 从 Redis 列表中删除特定索引处的元素

    是否可以删除 Redis 列表中特定索引处的元素 并没有真正找到我想要的东西 有 Trim 允许您选择一组特定的元素 LREM 允许您按值删除列表中的项目 但我没有该值 我发现了一个 hack 您可以使用 LSET 将元素的值更改为 UID
  • iPhone Xs 和 Xs Max 在 iTunes 上没有显示 UDID?

    对于运行 iOS 12 的 iPhone Xs 和 Xs Max UDID 不会显示在最新版本的 iTunes 12 9 中 有谁知道如何从新版iTunes获取UDID吗 到目前为止 我成功地从 Xcode 获得了 24 位代码 我使用的是
  • 级联保留父级后,子级的 id 不存在

    我有一个User 家长 和一个Home 子 实体遵循单向一对多关系相关 我的问题是 当添加新的Home to a User 新创建并保留的Home没有id 这是正常的吗 如果我想要 id 我需要手动保留孩子吗 这些是我的实体 Entity
  • Go http 客户端超时与上下文超时

    http Client 中设置的超时和请求上下文中设置的超时有什么区别 我见过两种在 http 客户端中设置超时的方法 First ctx cancel context WithTimeout context Background 2 ti
  • 如何“随机”选择对特定数字有指定偏差的数字

    如何生成对一个数字具有指定偏差的随机数 例如 我将如何在 1 和 2 这两个数字之间进行选择 并且 90 的概率偏向 1 我能想到的最好的办法是 import random print random choice 1 1 1 1 1 1 1
  • jQuery - 检查子 div 是否可见

    我试图查看 li 的子 div 是否可见 如果可见 则向 li 应用一个类 这就是我得到的 但它不起作用 if jQuery menu li children div css display none jQuery li this addC
  • 自动化无聊的事情 - 硬币翻转条纹

    我知道现在有很多关于它的问题 即使是同一个问题 但我想我尝试了一些不同的方法 任务是收集 10 000 个样本 每个样本 100 次翻转 然后计算所有样本中出现 6 次正面或反面连续出现的概率 据我所知 但在之前的问题中 编码问题被描述得有
  • Genymotion Android 模拟器 - adb 访问?

    我下载了适用于 Oracle VirtualBox 的 Genymotion Android 模拟器 http www genymotion com http www genymotion com 在我的 Windows 7 PC 上 使用
  • 如何从 web.config 读取系统值并在 ASP.NET MVC C# 方法中使用

    我正在开发一个 ASP NET MVC3 Web 应用程序 不是我编写的 其最大上传大小为 100MB 现在 此 Web 应用程序已安装在客户的服务器计算机上 因此如果可以为每个客户配置此值最大上传大小 那就太好了 如果需要 他们可以编辑