gpt4 book ai didi

c# - 如何使用 C# 代码在 IIS 上禁用文件监控

转载 作者:行者123 更新时间:2023-11-30 15:10:05 31 4
gpt4 key购买 nike

我找到了下面给出的代码片段,用于禁用 IIS 服务器上的文件监视(文件更改通知),但代码没有按预期工作。下面的监视器对象正在获取 NULL 值。不确定是否需要更多额外代码或需要任何其他设置。任何人都可以建议为什么这可能会获得 NULL 值或建议是否有更好的方法在 C# 中执行此操作 -

//FIX disable AppDomain restart when deleting subdirectory

//This code will turn off monitoring from the root website directory.

//Monitoring of Bin, App_Themes and other folders will still be operational, so updated DLLs will still auto deploy.

System.Reflection.PropertyInfo p = typeof(System.Web.HttpRuntime).GetProperty("FileChangesMonitor", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);

object o = p.GetValue(null, null);

System.Reflection.FieldInfo f = o.GetType().GetField("_dirMonSubdirs", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.IgnoreCase);

object monitor = f.GetValue(o); //Returns NULL

System.Reflection.MethodInfo m = monitor.GetType().GetMethod("StopMonitoring", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); m.Invoke(monitor, new object[] { });

最佳答案

我在 .Net 3.5 SP1 上使用以下代码:

var theRuntime = typeof(HttpRuntime).GetField("_theRuntime", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null);
var fcmField = typeof(HttpRuntime).GetField("_fcm", BindingFlags.NonPublic | BindingFlags.Instance);

var fcm = fcmField.GetValue(theRuntime);
fcmField.FieldType.GetMethod("Stop", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(fcm, null);

关于c# - 如何使用 C# 代码在 IIS 上禁用文件监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3610240/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com