朋友们好,我这里遇到了麻烦,希望得到大家的帮助。
我的需求是这样的,开发winform程序,程序中有个功能是下载SharePoint文档库中的文档。所以,毫无疑问,自然要用到SharePoint 的 web service来实现了,即Copy.asmx。
我的代码是这样的:
public static void CopyfileToLocal(string strSiteUrl,string strFileUrl, string strFilePath) { using (Copy copyFile = new Copy()) { if (AdminNwc == null) { return; } copyFile.Credentials = AdminNwc; copyFile.Url = strSiteUrl.Trim('/') + @"/_vti_bin/Copy.asmx"; FieldInformation fileInfo = new FieldInformation(); FieldInformation[] fileInfoArray = { fileInfo }; byte[] fileContents; copyFile.GetItem(strFileUrl, out fileInfoArray, out fileContents); } }
(备注:这里关于创建Copy对象都有引用相应的命名空间)
以上代码在执行过程中,小文件都是没有问题的。但遇到了大文件就会抛异常,例如,下载一个180M的文件,里面出错:Exception of type 'System.OutOfMemoryException' was thrown.
请各位园友伸出援助之手。谢谢,不甚感激!
OK,这个问题已经解决,原来用copy.asmx会因为大文件造成内存泄漏。
以下连接可解决问题。
http://bbs.csdn.net/topics/390407269?page=1#post-394051813