如何使用c#代码禁用IIS上的文件监视
我发现下面给出的代码片段用于禁用IIS服务器上的文件监视(文件更改通知),但代码未按预期工作。下面的监视器对象正在获取空值。不确定是否需要其他代码或任何其他设置。有人能提出为什么会得到空值,或者有没有更好的方法在C#中实现这一点-如何使用c#代码禁用IIS上的文件监视,c#,asp.net,iis,C#,Asp.net,Iis,我发现下面给出的代码片段用于禁用IIS服务器上的文件监视(文件更改通知),但代码未按预期工作。下面的监视器对象正在获取空值。不确定是否需要其他代码或任何其他设置。有人能提出为什么会得到空值,或者有没有更好的方法在C#中实现这一点- 我在.Net 3.5 SP1上使用以下代码: var theRuntime = typeof(HttpRuntime).GetField("_theRuntime", BindingFlags.NonPublic | BindingFlags.Static).GetV
我在.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);
代码编译得很好,但是我们无法在部署构建中验证这一点,因为还有一些其他问题阻碍我们这样做。然而,由于这是唯一的答案,我将接受这一点。非常感谢你的帮助。
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);