欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Autofac 应用于IIS托管的WEB程序,注册程序集被回收的问题

程序员文章站 2022-12-09 21:28:47
现项目开始全面接入Autofac,但上线了后发现,iis进程被回收后,在访问网页提示找不到注册在Autofac中的类型,或者实例。现在处理办法记录如下: 1. IIS托管的应用程序,在首次加载时,所有程序集会被加载到AppDomain中[但AppDomain会被iis回收,且程序集只在被需要的时候进 ......

现项目开始全面接入autofac,但上线了后发现,iis进程被回收后,在访问网页提示找不到注册在autofac中的类型,或者实例。现在处理办法记录如下:

1. iis托管的应用程序,在首次加载时,所有程序集会被加载到appdomain中[但appdomain会被iis回收,且程序集只在被需要的时候进行加载]

2. 使用system.web.compilation.buildmanager上的getreferencedassemblies()

var assemblies = buildmanager.getreferencedassemblies().cast<assembly>();

强制将引用的程序集加载到appdomain中。方便autofac进行扫描。