Asp.net 如果某些文件发生更改,如何限制IIS应用程序池刷新?
我有一个ASP.NET MVC应用程序,它包含一些文件夹,其中的文件可以在应用程序在IIS中运行时实时更改 当我更改扩展名为.resx(无代码生成)和.xml(具有自定义内容)的某些文件时,我的应用程序池会刷新,我不希望出现这种行为,但是如果我更改.cshtml,则池不会刷新 当我把提到的“有问题的”文件放在App_数据文件夹中时,池将不会被刷新,但可能还有其他文件夹的解决方案 例如,如果我的应用程序中有这样的文件夹结构:Asp.net 如果某些文件发生更改,如何限制IIS应用程序池刷新?,asp.net,iis,Asp.net,Iis,我有一个ASP.NET MVC应用程序,它包含一些文件夹,其中的文件可以在应用程序在IIS中运行时实时更改 当我更改扩展名为.resx(无代码生成)和.xml(具有自定义内容)的某些文件时,我的应用程序池会刷新,我不希望出现这种行为,但是如果我更改.cshtml,则池不会刷新 当我把提到的“有问题的”文件放在App_数据文件夹中时,池将不会被刷新,但可能还有其他文件夹的解决方案 例如,如果我的应用程序中有这样的文件夹结构: App_Code App_Data - file
App_Code
App_Data
- file1.resx // when its content changes the pool DOESN'T get refreshed
- files2.xml // when its content changes the pool DOESN'T get refreshed
- files3.cshtml // when its content changes the pool DOESN'T get refreshed
CustomFolder
- App_LocalResources
-- file1.resx // when its content changes the pool gets refreshed
-- files2.xml // when its content changes the pool gets refreshed
-- files3.cshtml // when its content changes the pool DOESN'T get refreshed
如果某些文件或文件类型发生更改,如何防止IIS应用程序池刷新
感谢您的帮助。我认为
App\u Data
是一个特殊的目录,应用程序重新启动/重新加载时会忽略该目录,因为很多动态/更改的内容可能会在那里结束
从MSDN关于resx
文件:
.resx(基于XML的资源格式)文件将转换为公共语言运行时二进制.resources文件,这些文件可以嵌入到运行时二进制可执行文件中或编译到附属程序集中
因此,我认为应用程序正在重新启动,因为resx
文件正在运行时编译
我认为没有办法阻止这种行为。有一些想法,但我没有尝试过这些 找到了解决办法。
.resx文件更改时应用程序池回收的问题存在于app\u LocalResources文件夹中。我将所有文件从这个文件夹移动到一个名为Resources的新文件夹(与App_Data的工作原理基本相同,因为它不是系统文件夹)
新文件夹结构如下所示:
App_Code
App_Data
- ...
CustomFolder
Resources
file1.resx
files2.xml
files3.cshtml
是的,你对.resx的看法是对的,但是为什么.xml的行为方式是一样的呢?这很奇怪。给定链接中提供的解决方案似乎不是很好。无论如何谢谢你。我同意,XML再次启动是很奇怪的。。。特别是如果你只放了这个文件。那部分我没有答案。