惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google Online Security Blog
Google Online Security Blog
D
Docker
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
Last Week in AI
Last Week in AI
L
LangChain Blog
月光博客
月光博客
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
GbyAI
GbyAI
Recent Announcements
Recent Announcements
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
D
DataBreaches.Net
T
Tailwind CSS Blog
H
Help Net Security
MongoDB | Blog
MongoDB | Blog
V
Visual Studio Blog
B
Blog
G
Google Developers Blog
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
云风的 BLOG
云风的 BLOG
Recorded Future
Recorded Future
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
Engineering at Meta
Engineering at Meta
C
Check Point Blog
V
V2EX
爱范儿
爱范儿
Microsoft Azure Blog
Microsoft Azure Blog
T
The Blog of Author Tim Ferriss
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Full Disclosure
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Proofpoint News Feed
罗磊的独立博客
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
Apple Machine Learning Research
Apple Machine Learning Research
量子位
博客园 - 司徒正美
博客园 - 叶小钗

博客园 - jblzg

用powershell脚本实现Andoird为不同市场编译、签名自动化,效率极大提高 JSON与Protocol Buffers Visual Studio 2008提高工作效率的小技巧 转:批处理获得任意天前的日期 SQL Server 2008 事务日志物理文件尺寸无法减小的解决办法(含日志收缩(shrink)技巧) 用虚拟机实际体验Google Chromium OS (Chrome OS) Pre-Built 2009年互联网5大趋势之一:结构化的数据 由一个案例引出SQL注入防范(WebKnight),补救(数据修复)的思考 参加Google Developer Day 2009归来 网站首页、频道首页静态化的问题 宽高比例不固定的用户头像纵向居中的方法(不使用表格、代码精简、图片不变形) Canonical URL Tag - 继SiteMap之后最重要的搜索引擎优化实践 - jblzg 金额字符串转换成Decimal格式的怪问题引发的思考 对常规启用 IIS6.0 Gzip 方法的补充,用于解决wget、curl等无法得到压缩结果的问题 FCKeditor.NET的配置、扩展与安全性经验交流 搜狐博客列表页面分析 ASP.NET Web 开发中的静态资源(JS、CSS、图片)版本控制 参加Google Developer Day 2008归来 一次有趣的Debug——使用Lumigent Log Explorer对SQL Server事务日志进行分析,对SQL Server事务、操作进行撤销(恢复)
避免修改Web.config的appSettings配置时导致的所有页面重编译
jblzg · 2008-09-24 · via 博客园 - jblzg

“对这些重要文件*注1的修改将立即被ASP.NET运行库检测到,并导致所有页面被重新编译。”

——《精通ASP.NET程序设计 Programming Microsoft ASP.NET》第12章

如上面所述,我们在修改配置文件Web.config时,因为所有页面都会重新编译,会导致短暂的服务中断。这里有一个方法可以避免:

将常用且有可能发生改变的配置都放在appSetting节中,如:

<appSettings>
    
<add key="SMTPServerAddress" value="0.0.0.0"/>
</appSettings>


Web.config中appSettings节有个属性:configSource,这个属性可以指定一个存储appSettings的外部文件路径(只支持相对路径),而这个外部文件的修改是不会引起页面的重新编译的,同时它的改动也能立即被ASP.NET运行库检测到。可谓一举两得。

Web.config中的appSettings的配置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    
<appSettings configSource="Settings\WebAppSettings.config" />
</configuration>


外部文件Settings\WebAppSettings.config的内容:

<?xml version="1.0" encoding="utf-8"?>
<appSettings>
    
<add key="SMTPServerAddress" value="0.0.0.0"/>
</appSettings>

*注1、Web.config配置文件

----------------------------------------------------------------------

20091120 UPDATE

后来的事实证明,默认情况下,外部的配置文件修改并不会让修改立即生效,要马上生效要回收该WebApp的应用程序池。

分离配置文件的好处并非如我之前所讲可以避免重新编译,而是使Web.config环境无关,不用为生产服务器和开发服务器维护2份Web.config,有差异的部分都分离出来即可[1]。比如在开发和生产环境使用不同的connectionStrings.config 和 smtp.config,好处是 web.config 更小巧且更易读, 不需要为生产开发两个环境分别配置Web.config。

 [1]参考:http://weblogs.asp.net/fmarguerie/archive/2007/04/26/using-configsource-to-split-configuration-files.aspx