防止ASP.Net AppDomain卸载

时间:2010-01-20 00:33:08

标签: c# asp.net winforms appdomain

正如here所述,我正在编写一个在ASP.Net AppDomain中运行的WinForms GUI。

但是,每当修改Web.config或bin文件夹时,ASP.Net都会卸载AppDomain,并且整个程序都会死掉。

有没有办法阻止这种情况?

2 nd 编辑:在我的EXE中,我通过调用ApplicationHost.CreateApplicationHost来创建AppDomain,并在我的EXE中传递一个启动GUI的类型。 / p>

编辑:我已经知道这是 可怕的 设计。
有没有人有理智的选择?

该程序在类型化数据集中跟踪非营利组织的帐户 它需要通过电子邮件发送账单,我正在使用ASPX文件来生成电子邮件。 (我宁愿不改变它,除非有一个非常好的选择;模板已经写好了)

电子邮件模板是部署在子文件夹中的ASPX文件;该子文件夹成为ASP.Net应用程序,并在其bin目录中具有可执行文件,以便ASP.Net将我的所有代码加载到其AppDomain中。

UI和ASPX文件都必须访问类型化数据集,我不想两次从SQL服务器下载数据

3 个答案:

答案 0 :(得分:3)

这是ASP.Net的核心 - 如果更改了web.config,AppDomain将被回收。如果更改了machine.config,则所有 AppDomains将被回收。

但是,您可以禁用此功能。在IIS控制面板中为您感兴趣的应用程序池启用“禁用回收配置更改”。

alt text http://img138.imageshack.us/img138/9938/iisdisablerecycle.png

答案 1 :(得分:1)

我注意到您的第一个问题是 10月29日。我知道它在发展轨道上还很遥远......

但出于好奇:为什么不使用T4 templates

它简单,快速,您可以编辑非常类似于ASPX页面,它可以在任何AppDomain中运行。

答案 2 :(得分:1)