如何解决动态装配体太多
| 我正在尝试将Razor视图引擎用作由数据库支持的常规模板引擎。 http://razorengine.codeplex.com/问题是,对于每个模板编译,都会创建并加载一个新的动态程序集。由于无法从当前应用程序域中卸载程序集,也无法对模板系统使用单独的应用程序域(使用匿名类型),因此这些程序集将不断累积,直到销毁应用程序域为止。模板本身将定期更改,因此将导致更多的重新编译。 问题是这些动态程序集(可能成千上万个)会损害appdomain的性能吗?还是可以选择一种更好的方法呢?解决方法
通常,在AppDomain中加载许多小程序集不应该太担心。任何人对此的唯一一般性陈述是衡量应用在相关场景下的实际性能,然后查看它是否重要。
ASP.NET具有一些自动应用程序生命周期管理,可在某些事件后回收AppDomain。例如,如果应用程序中的重新编译过多,则ASP.NET将自动重新启动应用程序。这意味着将清除所有以前加载的程序集,然后从头开始。
有关更多信息,请参见MSDN:http://msdn.microsoft.com/zh-cn/library/s10awwz0.aspx
numRecompilesBeforeAppRestart
可选的Int32属性。
指定在应用程序重新启动之前可能发生的资源动态重新编译的次数。全局和应用程序级别支持此属性,但目录级别不支持。
注意
每当程序集无效且无法删除时,ASP.NET都会增加NumRecompilesBeforeAppRestart属性。
默认值为15。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。