Asp.net & 文件修改?
Posted
技术标签:
【中文标题】Asp.net & 文件修改?【英文标题】:Asp.net & files modifications? 【发布时间】:2012-10-14 08:54:06 【问题描述】:我们正在更改一个文件并将其上传到网络服务器。
一劳永逸,我想知道更改文件将如何影响 iis 的 Appdomain
我目前使用网站 - 所以我是根据我的知识写的。
web Application
中的值是什么?(X 中的修改文件将如何影响 iis 中的 Appdomain?)
______________________________|_ Web Application _|___ Web Site _____________
changed Global.asax | | restarted
| |
| |
changed web.config | | restarted
| |
| |
changed CS file | | nothing
| |
| |
changed Aspx file | | nothing
| |
| |
changed App_code(folder) file | | restarted
| |
| |
changed BIN(folder) dll file | | restarted
【问题讨论】:
您是否对nothing
s 进行了广泛调查?至少通过开始一个新会话?
嗨@HenkHolterman。是的,我很肯定更改这些文件类别 - 没有任何影响。 (当然 - 下一个请求将由新文件处理......)。当然 - 我总是错的。 :-)
下一个请求将被新文件处理 - 这不是什么。
@HenkHolterman 问题是关于影响 appdomain (重新启动与否)。谢谢。我将通过编辑使其更清晰。
不确定,但我认为这也取决于您是否在调试模式下运行 (<compilation debug="true" />
)。
【参考方案1】:
当修改以下任何一项时,应用程序池被回收:
web.config machine.config global.asax bin目录 app_code 目录应用程序池可能会因其他原因被回收,例如,通过明确将其配置为在特定时间或一定时间后回收。
修改静态文件(.js、.css、.html、.jpg 等)不会触发回收,除非这些文件被写入上述目录之一。
【讨论】:
您好,请提问:#1) 当您提到numRecompilesBeforeAppRestart
时 - 这不适用于配置文件...对吗?因为他们立即回收。 #2) 另外,您是指 root/subs 中的所有文件(在 bin 等特殊文件夹中找不到)吗?我的意思是,将 /images 下的文本文件更改 15 次 - 它会重新启动 appDomain 吗? #3) 另外,这是每个文件 15 个还是总共 15 个更改?
请再问一个问题:为什么增加 numRecompilesBeforeAppRestart 的这个值会导致内存问题?它只是假设保存一个“更改计数器”,为什么这与内存压力有关?
我做了一个测试 - 改变一个文件 20 次(aspx & txt 文件),我仍然得到会话....所以?
@RoyiNamir 一旦加载,程序集只能通过回收应用程序池来卸载。假设您的应用程序池正在运行,PageA.aspx 已编译并加载到内存中(来自临时 ASP.NET 文件)。如果您更改 PageA,它将被重新编译为一个新的程序集,然后再加载该程序集。仍加载原始的 PageA 程序集。随着时间的推移,这会消耗越来越多的内存。页面组件相对较小,但如果您连续几天更改许多页面,您的服务器可能会遇到内存压力。
@RoyiNamir 更改 web.config 总是会触发回收。 numRecompilesBeforeAppRestart 仅适用于页面。我不知道您所说的“我仍然有会议”是什么意思。请解释一下。以上是关于Asp.net & 文件修改?的主要内容,如果未能解决你的问题,请参考以下文章