IIS7没有加载程序集

时间:2011-03-23 04:04:27

标签: c# reflection iis-7.5

我正在使用反射来获取要在容器中注册的类型集合。

问题是,在IIS 7.5应用程序池回收或IISRESET之后,并非所有程序集都可以通过反射来获取。

如果没有通过bin文件夹并在每个DLL上进行程序集加载,有什么方法可以解决这个问题吗?

更新

我正在使用AppDomain.Current.GetAssemblies()来检索所有已加载的程序集。

1 个答案:

答案 0 :(得分:0)

问题解决了。

请勿使用AppDomain.CurrentDomain.GetAssemblies()。

相反,请使用

System.Web.Mvc.BuildManager.GetReferencedAssemblies()

只有quirk是.GetReferencedAssemblies()传回ICollection(对象),你需要将它转换为Assembly然后使用。

感谢大家的帮助。

Edit- Credit to Dominic Pettifer - “AppDomain.CurrentDomain.GetAssemblies()被认为是武装和极其危险” http://www.dominicpettifer.co.uk/Blog/44/how-to-get-a-reference-to-all-assemblies-in-the--bin-folder?replyId=357

确实

Tripple Edit。不是AppDomain.CurrentDomain.GetReferencedAssemblies()。使用System.Web.Mvc。

中的BuildManager类