调用MOSS API取document时出现out of memeory错误
在公司同事做电子签核时,我们采用的方案是MS infopath + MS WF + SQL, MS Infopath采用的表单提交到MOSS,由MOSS存放原始表单,但业务系统,比如人资系统等要读取表单中的数据时,就要提供客制化的API供这些业务系统调用。
在上线使用过程中,发现自己写的MOSS API即读取MOSS document不稳定,从log中可以看出偶尔会出现out of meory. 此问题在网上找了许久,终于发现是code不对,因为官方说法是SpWeb,SpSite这类对象虽然是.net中的可控对象,但实质上他们用的是COM对象,即spWeb,spSite只是COM的引用,真正的对象以及内存的管理都是unmanaged. 即然是unmanaged的,那么对象的释放必须是显示地。否则依靠garbage collection去自动回收就会出现out of memory.
http://apmblog.compuware.com/2010/03/18/how-to-avoid-the-top-5-sharepoint-performance-mistakes/