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

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

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

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

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