你好,我有一个大型的.Net网络应用程序,它运行在一个刀片式服务器群上,代码库在网络连接存储上。每隔一段时间,nas响应时间的轻微波动都会导致.NET认为垃圾桶中的某些东西发生了变化,并启动应用程序池的回收。实际上并没有发生任何变化。有没有办法禁用.Net对bin更改的监控?
发布于 2009-08-11 16:46:07
这将结束这一切。现在你必须执行iisreset来回收你的应用程序池。
'This is supposed to turn off the monitoring for directory deletes
'See https://connect.microsoft.com/VisualStudio/feedback/Workaround.aspx?FeedbackID=240686
'This incurs the penalty of an IISRESET or manually restarting the containing AppPool after every upgrade.
Dim pi As PropertyInfo
Dim o As Object
Dim m As MethodInfo
pi = GetType(System.Web.HttpRuntime).GetProperty("FileChangesMonitor", BindingFlags.NonPublic Or BindingFlags.Public Or BindingFlags.Static)
o = pi.GetValue(Nothing, Nothing)
m = o.GetType().GetMethod("Stop", BindingFlags.Instance Or BindingFlags.NonPublic)
m.Invoke(o, New Object() {})发布于 2009-08-11 17:02:45
似乎还有一个热修复程序,似乎能够禁用注册表项的“功能”:
http://support.microsoft.com/kb/911272
不完全确定这在垃圾桶上是否有效。
发布于 2009-08-11 16:30:53
简单的答案是,你不能。如果IIS检测到其中一个二进制文件发生更改,则必须重新加载,以确保它使用的是正确的二进制文件。
真正的问题是: a) IIS是否真的检测到了变化,或者是由于“波动”导致操作系统认为文件不是即时存在的?b)如果“波动”是问题的根源,是什么引起的?如何解决这个问题?
https://stackoverflow.com/questions/1261436
复制相似问题