.Net4.0 Web.config 配置实践

目录

关于 Web.config

运行环境

配置实践

请求验证模式兼容旧版本

上传文件限制

Request.Path危险值配置

全站应用UTF-8编码

设置日期格式

每个会话的限制并发请求数

正常运行指定扩展名的文件

Json字符串超出最大长度限制

控件早期版本的呈现方式

C# 操作 Web.config

小结


关于 Web.config

当通过.NET 新建一个Web应用程序项目后,默认情况下会在根目录自动创建一个默认的Web.config文件,其是一个XML文本文件,内容包括运行应用默认的所有运行基础配置。

除根目录外,可以每个要特殊配置的子目录下新建一个Web.config文件。它可以在继承父目录的配置信息以外,可以自定义重写或修改父目录中定义的设置。

在应用运行时对 Web.config 文件的修改不需要重启服务就可以生效,因此请注意正确的修改内容,否则会引起应用站点异常并报错。

Web.config 文件可以自定义配置进行扩展,通过自定义配置参数,满足我们日常对应用程序的其它配置需求。

运行环境

操作系统: Windows Server 2019 DataCenter

.net版本: .netFramework4.0 或以上

编辑工具:VS2019 或其它任何文本编辑器

配置实践

请求验证模式兼容旧版本

请求验证模式定义了如何处理客户端请求中的输入内容的安全性,我们运行的是 .netFrameword 4.7.1 版本,为保证兼容性,最好配置

<system.web><httpRuntime  requestValidationMode="3.5"  />
</system.web>

上传文件限制

这是经常用到和遇到的一个问题,对于默认配置 maxRequestLength 一般仅允许上传不超过4Mb的文件,我们可以通过修改下列配置节:

<system.web><httpRuntime  maxRequestLength="20480000"  /></system.web>

我们还可以配置些节点:

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

如果不起作用还可以配置如下节(如果存在):

<aspnetUploadSettings><add key="maxRequestLength" value="20480000" />
</aspnetUploadSettings>

Request.Path危险值配置

在页面处理输入时,我们会遇到客户端(&)中检测到有潜在危险的 Request.Path 值错误 (即包含一些被认为是危险的字符输入,如脚本标记等),如果我们有需要关闭此功能时,可以在应用页面头部加入如下配置:

<%@ Page Language="C#"  ValidateRequest="FALSE"  %>

Web.config 文件里我们可以配置如下:

<system.web><httpRuntime requestPathInvalidCharacters="" />
</system.web>

全站应用UTF-8编码

目前utf-8编码是广泛应用的一种编码,我们可以默认配置如下节:

<system.web><globalization requestEncoding=”utf-8″ responseEncoding=”utf-8″ fileEncoding="utf-8" />
</system.web>

也可以单独为某页面配置编码,如下示例:

<location path="cc/test.aspx"><system.web><globalization requestEncoding="gb2312" responseEncoding="gb2312"  fileEncoding="gb2312"/></system.web>
</location>

设置日期格式

某些情况我们需要对日期格式进行符合自己应用的标准化格式输出,如 2024-04-22的日期格式,我们会发现从数据库提取的日期格式未必如预期那样,即使配置了数据库格式及WINDOWS环境日期格式,仍然不能按照预期显示,那么我们可以尝试在 Web.config <appSettings>配置节添加如下key:

<appSettings><add key="ShortDatePattern" value="yyyy-MM-dd" />
</appSetttings>

请注意 yyyy-MM-dd 是区分大小写的。更多配置可以参考如下链接:

https://learn.microsoft.com/zh-cn/previous-versions/bb688124(v=msdn.10)?redirectedfrom=MSDN

我们发现有时配置了此节会有失效的情况,可以打开 Web.config 文件,随便改动一下,再保存一下理论上就能恢复正常的日期显示了。

每个会话的限制并发请求数

这是为了解决 .NET Framework 4.7、4.7.1 和 4.7.2 中引入的应用兼容性问题,可以在 Web.config <appSettings>配置节添加如下key:

<appSettings><add key="aspnet:RequestQueueLimitPerSession" value="2147483647"/>
</appSetttings>

更多详情请参考如下链接:

有关迁移到 .NET Framework 4.7.x 的操作的重定向目标更改 

正常运行指定扩展名的文件

在我们运行的一些应用中,需要运行 mp4 文件,发现运行时出现错误,我们可以加入对该扩展名的支持,如下配置:

<system.webServer><staticContent><remove fileExtension=".mp4" /><mimeMap fileExtension=".mp4" mimeType="video/mp4" /></staticContent>
</system.webServer>

请注意 remove 节,是一种比较稳妥和兼容的写法,否则可能未必能够达到您的预期。

Json字符串超出最大长度限制

在处理Json字符串序列化的时候,可能会遇到字符串超过长度限制的错误,我们可以配置如下节:

<system.web.extensions><scripting><webServices><jsonSerialization maxJsonLength="204800"/></webServices></scripting>
</system.web.extensions>

控件早期版本的呈现方式

指定控件应以 ASP.NET 的早期版本中的呈现方式,可以设置为3.5(最低版本),如下配置:

<system.web><pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"><controls><add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /></controls></pages>
</system.web>

这是Pages的通用设置方法,更多信息请参考如下链接:

https://learn.microsoft.com/zh-cn/previous-versions/950xf363(v=vs.110)?redirectedfrom=MSDN

C# 操作 Web.config

appSettings节是我们经常自定义变量配置的节,在此我们分享 C# 一个appSettingsEdit方法,可以动态的配置指定的变量及值,其参数见下表:

序号参数名类型说明
1WebConfigDirectorystringWeb.config文件所在的目录(不包含文件名)
2appSettingsAddkeystring要在 appSettings 节中添加的键值 Key 名称
3keyvaluestring要在 appSettings 节中添加的键值 Key 的值 Value

 方法代码如下:

 

public bool appSettingsEdit(string WebConfigDirectory,string appSettingsAddkey,string keyvalue) { try { string path=WebConfigDirectory+"\\web.config"; XmlDocument xd=new XmlDocument(); xd.Load(path); //如果没有appSetting,则添加 if(xd.SelectNodes("//appSettings").Count==0) { xd.DocumentElement.AppendChild(xd.CreateElement("appSettings")); } //判断节点是否存在,如果存在则修改当前节点 bool addNode=true; foreach(XmlNode xn1 in xd.SelectNodes("/configuration/appSettings/add")) { if(xn1.Attributes["key"].Value==appSettingsAddkey) { addNode=false; xn1.Attributes["value"].Value=keyvalue; // xn1.ParentNode.RemoveChild(xn1); break; } } //当前节点不存在,则添加新节点 if(addNode) { //创建新节点 XmlNode xn2=xd.CreateElement("add"); //添加key XmlAttribute xa=xd.CreateAttribute("key"); xa.Value=appSettingsAddkey; xn2.Attributes.Append(xa); //添加value xa=xd.CreateAttribute("value"); xa.Value=keyvalue; xn2.Attributes.Append(xa); xd.SelectSingleNode("/configuration/appSettings").AppendChild(xn2); } //保存web.config xd.Save(path); return true; } catch { return false; } 
} 

小结

一般情况下请勿更改 Web.config 的文件名及扩展名,因为 .config 文件扩展名可防止 ASP.NET 下载相应文件。

更高级的父对象继承可以更改 %SystemRoot%\Microsoft.NET\Framework\<版本>\CONFIG 目录下的 Machine.config 和 Web.config 文件继承所有基础配置设置,此文件属于服务器配置级别,要高于单独的应用程序级别。

到此关于 Web.config 的配置我们就讲到这里,后续随着实际的应用我们会继续丰富本文章内容,感谢您的阅读,希望本文对您能有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/1722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电梯节能的推广意义

之前关于电梯能量回馈设备&#xff0c;小伍已经做了很多介绍&#xff0c;那么小伙伴们&#xff0c;他的推广意义你真的了解了么&#xff1f; 第一&#xff1a;节电降耗&#xff0c;电梯在运行过程中会产生大量的惯性能量&#xff0c;这些能量如果不被利用就会浪费。能量回馈技术…

iframe和 blob实现JS,CSS,HTML直接当前页预览

先贴效果图&#xff1a; <template><div><div class"aaa"></div><div class"btn-run" click"tres">运行</div></div></template><script>import { mapState } from vuex;export default …

UDP文件传输工具之UDP怎么限流

UDP&#xff08;用户数据报协议&#xff09;以其低延迟和高速度的特点&#xff0c;在实时应用和大数据传输中扮演着重要角色。然而&#xff0c;UDP作为一种无连接的协议&#xff0c;并不保证数据包的顺序、完整性或可靠性。 因此&#xff0c;企业在寻求一种方式&#xff0c;有…

尝试给笔记本超频

超频&#xff08;英语&#xff1a;overclocking&#xff09;是把一个电子配件的时脉速度提升至高于厂方所定的速度运作&#xff0c;从而提升性能的方法&#xff0c;但此举有可能导致该配件稳定性以及配件寿命下降。 笔记本配置为&#xff1a; 处理器 AMD Ryzen 7 7730U wit…

【GlobalMapper精品教程】076:基于高程和影像数据创建电子沙盘(真实三维地形)

影像与数字高程模型叠加,可以构建三维真是地形。本文讲解在Globalmapper中基于高程和影像数据创建电子沙盘(真实三维地形)。 文章目录 一、加载数据二、创建三维网格三、三维叠加显示一、加载数据 本实验的数据(配套实验数据资料包中的data076.rar,订阅专栏,获取全文及数…

基于MLP算法实现交通流量预测

在浩如烟海的城市数据中&#xff0c;交通流量信息无疑是揭示城市运行脉络、洞察出行规律的关键要素之一。实时且精准的交通流量预测不仅能为交通规划者提供科学决策依据&#xff0c;助力提升道路使用效率、缓解交通拥堵&#xff0c;还能为公众出行提供参考&#xff0c;实现个性…

vue-manage-system 版本更新,让开发更加简单

vue-manage-system 近期进行了一次版本升级&#xff0c;主要是支持了更多功能、升级依赖版本和优化样式&#xff0c;并且上线了官方文档网站&#xff0c;大部分功能都有文档或者使用示例&#xff0c;更加适合新手上手开发&#xff0c;只需要根据实际业务简单修改&#xff0c;就…

QA测试开发工程师面试题满分问答15: 讲一讲InnoDB和MyISAM

InnoDB和MyISAM是MySQL中两种常见的存储引擎&#xff0c;它们在数据存储和处理方面有着显著的区别。让我们逐一来看一下它们的区别、原理以及适用场景。 区别&#xff1a; 事务支持&#xff1a;InnoDB是一个支持事务的存储引擎&#xff0c;而MyISAM不支持事务。事务是一种用于维…

通过python消费者和生产者队列,实现保存视频流

通过python消费者和生产者队列&#xff0c;实现保存视频流 参考 https://blog.csdn.net/qq_33843237/article/details/137745905 原理 通过opencv读入RTSP或RTMP流&#xff0c;采用消费者-生产者模型&#xff0c;通过生产者线程&#xff0c;每次读入一个视频帧&#xff08;…

mysql 重复单号 统计

任务&#xff1a; 增加重复件统计分析&#xff1a; 统计展示选择时间范围内重复1次、重复2次、重复3次、重复4次、重复5次及以上的数据量 17、统计出现的重复次数 增加重复件统计分析&#xff1a; 统计展示选择时间范围内重复1次、重复2次、重复3次、重复4次、重复5次及以上的数…

人工智能常见的分类算法

在机器学习中&#xff0c;分类算法是用于预测数据集中实例所属类别的重要技术。本文将详细介绍七种常见的分类算法&#xff0c;包括决策树、支持向量机、朴素贝叶斯、最大熵、K最近邻算法、神经网络和深度学习&#xff0c;并提供相应的示例。 1. 决策树&#xff08;Decision T…

【机器学习】各大模型原理简介

目录 ⛳️推荐 前言 一、神经网络&#xff08;联结主义&#xff09;类的模型 二、符号主义类的模型 三、决策树类的模型 四、概率类的模型 五、近邻类的模型 六、集成学习类的模型 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风…

uniapp H5的弹窗滚动穿透解决

目录 方案一 事件修饰符 overscroll-behavior 修饰符 overscroll-behavior 属性 看个案例 兼容 方案二 overflow&#xff1a;hiden 有一层遮罩蒙层覆盖在body上时&#xff0c;当我们滚动遮罩层&#xff0c;它下面的内容也会跟着一起滚动&#xff0c;看起来好像是上面的…

冯唐成事心法笔记

文章目录 卷首语 管理是一生的日常&#xff0c;成事是一生的修行PART 1 知己 用好自己的天赋如何管理自我用好你的天赋成大事无捷径如何平衡工作和生活做一个真猛人做自己熟悉的行业掌控情绪如何对待妒忌和贪婪如何战胜自己&#xff0c;战胜逆境真正的高手都有破局思维有时候…

本地环境测试

1. 在 Anaconda Navigator 中&#xff0c;打开 Jupyter Notebook &#xff0c;在网页中&#xff0c;点击进入本地环境搭建中创 建的工作目录&#xff0c;点击右上角的 New- 》 Folder &#xff0c;将新出现的 Untitled Folder 选中&#xff0c;并使用左上角 的 Rename 按钮重…

白蚁自动化监测系统解放方案

一、系统介绍 白蚁自动化监测系统是基于物联网的各项白蚁监测点数据的采集形成智能控制系统。提供白蚁实时预警及解决方案&#xff0c;真正实现区域内白蚁种群消灭。白蚁入侵&#xff0c;系统第一时间自动报警&#xff0c;显示入侵位置&#xff0c;实现抓获白蚁于现场的关键环…

【Linux】认识文件(三):缓冲区

【Linux】认识文件&#xff08;三&#xff09;&#xff1a;缓冲区 一.啥是缓冲区&#xff1f;二.缓冲区现象三.缓冲区的刷新方法四.缓冲区在哪&#xff1f;五.为什么要有缓冲区 一.啥是缓冲区&#xff1f; 缓冲区&#xff0c;官方说法就是&#xff1a;指的是一块用于临时存储数…

linux配置mail发送邮件

无邮件正文 mail -s “主题” 收件地址 有邮件正文 mail -s “主题” 收件地址< 文件(邮件正文.txt) echo “邮件正文” | mail -s 邮件主题 收件地址 cat 邮件正文.txt | mail -s 邮件主题 收件地址 带附件 mail -s “主题” 收件地址 -a 附件 < 文件(邮件正文.t…

LeetCode 409—— 最长回文串

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 要想组成回文串&#xff0c;那么只有最中间的字符可以是奇数个&#xff0c;其余字符都必须是偶数个。 所以&#xff0c;我们先遍历一遍字符串&#xff0c;统计出每个字符出现的次数。 然后如果某个字符出现了偶…

MySQL InnoDB事务处理探秘:原理、特性与实战攻略

在现代数据库领域&#xff0c;事务处理是确保数据一致性和完整性的重要手段。MySQL InnoDB存储引擎以其强大的事务处理能力著称&#xff0c;它遵循ACID原则&#xff0c;为用户提供了可靠、灵活的事务管理环境。本文将深入探讨InnoDB事务处理的原理、特性&#xff0c;辅以通俗易…