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 

【问题讨论】:

您是否对nothings 进行了广泛调查?至少通过开始一个新会话? 嗨@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 & 文件修改?的主要内容,如果未能解决你的问题,请参考以下文章

理解ASP.NET Core

跟我学ASP.NET MVC之十一:URL路由

asp.net 点击一下文件名或者一个下载按钮,将文件下载下来怎么做啊???

缩放 ASP.NET 应用程序

Asp.net & 文件修改?

ASP.NET Web API 身份验证(Web + 移动)