在IIS7中重新启动网站以“刷新”Castle Windsor配置的最佳方法

时间:2011-06-16 15:56:33

标签: asp.net iis-7 castle-windsor

我在IIS7中托管了一系列ASP.NET网站。我使用Castle Windsor进行依赖注入,配置数据保存在XML文件中。

我觉得嘿,这很酷,我可以编辑文件切换到我的界面的不同实现。我意识到,因为Castle Windsor在实例化容器时解析XML配置,我需要以某种方式重新启动网站以“重置”Castle Windsor。

这并不像我想象的那么简单。我试过在IIS中右键单击该站点并选择“重新启动”,但这不会切换实现。奇怪的是,如果我“停止”该网站,它将不再有效,但会重新开始,并且它会像以前一样继续。

我猜重启应用程序池会起作用,但由于这会影响其他网站,我也不想这样做。

有人可以提出一种方法来完全重启应用而不影响其他网站吗?

4 个答案:

答案 0 :(得分:3)

您可以在城堡配置文件上设置FileSystemWatcher,在更新事件上,您可以调用

HttpRuntime.UnloadAppDomain();

这将导致Application_end on on next be request您的webapplication / AppDomain将重启

答案 1 :(得分:2)

答案 2 :(得分:2)

答案 3 :(得分:0)

如果这些设置与web.config位于不同的文件中,则更改其设置不会触发应用程序重启。

除非可以通过某种方式通知Castle Windsor在运行时刷新其设置,否则重新加载配置的唯一方法就是“触摸”web.config文件。