.Net4.0 Web.config 配置实践

这篇具有很好参考价值的文章主要介绍了.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方法,可以动态的配置指定的变量及值,其参数见下表:

序号 参数名 类型 说明
1 WebConfigDirectory string Web.config文件所在的目录(不包含文件名)
2 appSettingsAddkey string 要在 appSettings 节中添加的键值 Key 名称
3 keyvalue string 要在 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 的配置我们就讲到这里,后续随着实际的应用我们会继续丰富本文章内容,感谢您的阅读,希望本文对您能有所帮助。文章来源地址https://www.toymoban.com/news/detail-856419.html

到了这里,关于.Net4.0 Web.config 配置实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在.net 6.0中 调用远程服务器web服务,Webservices(xxx.asmx) ,RESTful 风格,2种解决方案。

       1. 使用 Connected Services : 右键单击您的项目,选择 \\\"Add\\\"(添加)- \\\"Connected Services\\\"(已连接的服务)。 在 \\\"Connected Services\\\" 对话框中,选择 \\\"WCF Web Service\\\"。 在 \\\"WCF Web Service\\\" 对话框中,输入 xxx.asmx 的 URL 地址(例如:http://A.B.C.com/ABCWebService/product/ProductService.asmx),然后点击“转

    2024年02月14日
    浏览(35)
  • 如何在虚拟专用服务器上配置 Nginx Web 服务器

    本文档涵盖的是不再受支持的 Ubuntu 版本。如果您目前正在运行 Ubuntu 12.04 服务器,我们强烈建议升级或迁移到受支持的 Ubuntu 版本: 升级到 Ubuntu 14.04 从 Ubuntu 14.04 升级到 Ubuntu 16.04 将服务器数据迁移到受支持的版本 原因: Ubuntu 12.04 已于 2017 年 4 月 28 日到达生命周期终点(

    2024年04月27日
    浏览(39)
  • WEB服务器搭建与配置

    # 目前最主流的三个Web服务器是Apache、Nginx、 IIS。 - Web服务器一般指网站服务器,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。 - WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 - 服

    2024年02月04日
    浏览(39)
  • Web服务器配置与管理

    个人主页:熬夜磕代码丶 作品专栏: java se 我变秃了,也变强了 给大家介绍一款程序员必备刷题平台——牛客网 点击注册一起刷题收获大厂offer吧 本次Web服务器配置与管理是基于计算器网络课程设计,大部分都是刚学完计算机网络,对Web服务器了解甚少,所以今天推出一期小

    2024年02月02日
    浏览(46)
  • Linux的Web服务器配置

    准备工作: 1.准备两台虚拟机(CentOS):一台作为服务器,一台作为客户机(选择仅主机模式进行连接) 2.检查是否安装好了httpd:rpm -q httpd 3.如果没有安装好,安装步骤: ①.cd /run/media/root/CentOS 7 x86_64/Packages (使用自动补全) ②.查看目录下的文件 ls | grep httpd 选择第一个下

    2024年02月05日
    浏览(39)
  • 为一台计算机配置Web服务器,DNS服务器与DHCP服务器

    实验目的:为一台计算机配置Web服务器,DNS服务器与DHCP服务器 事先准备:三台纯净虚拟机(以下简称为虚拟机A,虚拟机B,虚拟机C)和一台主机 一、配置静态IP 因为要保证实验畅通,所以必须把四台机器配置成同一网段,使用同一网卡 1、首先保证三台虚拟机的网络适配器

    2024年02月11日
    浏览(52)
  • WEB服务器配置与HTTP分析

    目录 实验目的: 实验要求: 实验原理: 实验步骤: 步骤1:创建拓扑 步骤2:为PC、Client和Server配置IPv4地址、子网掩码和域名服务器 步骤3:启动设备和服务器 步骤4:测试PC-1、Client-1和Server-1之间的通信 步骤5:在Server-1上配置并启动DNS服务器  步骤6:在Server-1上配置并启动

    2024年01月17日
    浏览(50)
  • 实验六 WEB FTP服务器配置

    实验六 WEB FTP服务器配置    一、实验目的 理解IIS服务的基本概念; 掌握在Windows 2003 server 上安装WEB服务器的方法; 掌握WEB服务器的配置方法; 掌握在客户端访问WEB服务器的方法。 理解FTP的基本概念与工作原理; 安装FTP服务器方法; 配置与管理FTP服务器的方法; 客户端访

    2024年02月09日
    浏览(38)
  • .NET Core(C#)使用Titanium.Web.Proxy实现Http(s)代理服务器监控HTTP请求

    关于Titanium.Web.Proxy详细信息可以去这里仔细看看,这里只记录简单用法 NuGet直接获取Titanium.Web.Proxy 配置 与其说是配置,不如就说这一部分就是未来你需要使用的部分,想知道具体每个部分是干什么的就去看原文链接 全放过来太占地方 最后的 Console.Read(); 是一个等待函数,你

    2024年02月09日
    浏览(54)
  • Web服务器启用HTTPS的配置方法

    本文于2016年3月完成,发布在个人博客网站上。 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。 可以参考Jerry Qu的本博客 Nginx 配置之完整篇。 以Java语言实现的Connector为例,介绍配置方法。 Windows下,可以在CMD下执行命令 Unix下,可以在

    2024年02月04日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包