异步线程在SharePoint Web部件中消失

时间:2009-04-08 19:34:58

标签: sharepoint sharepoint-2007

我为SharePoint 2007编写了一个自定义Web部件,用于加载现有的用户控件。用户控制的一件事是通过FTP异步上传文件。我正在使用具有BeginUpload / EndUpload方法的第三方FTP库进行异步文件传输。我还在用户控件中有一个更新面板,用于根据FTP库引发的事件显示已传输的字节数的运行总计。我已经将所有必要的AJAX设置添加到web.config。

如果我从一个单独的项目中单独运行用户控件,那么一切都很有效。但是当我访问托管控件并尝试上载的Web部件时,FTP库传输大约64 KB,然后它运行的线程就会死掉。我在VS输出窗口中收到的消息是:

线程'Win32 Thread'(0xf34)已退出,代码为0(0x0)。

我得到了其中几个,然后FTP库抛出一个异常(基本上超时),IIS工作进程爆炸,整个事情就停止了。我需要在SharePoint配置或Web部件中执行哪些特殊操作才能使其工作?它似乎与SharePoint有关,因为如果SP不在图片中,相同的代码可以正常工作。

2 个答案:

答案 0 :(得分:0)

我将此问题提交给Microsoft SharePoint开发人员支持,他们能够使用我正在使用的FTP库重现错误,该库来自ComponentSpace。通常我想做的事情是可能的,但出于某种原因它只是不想工作。

他们的解决方案是通过执行Request.Files(0).SaveAs然后执行FTP上传来将文件保存在Web服务器上。不理想,但它给了我想要的进度指标。

答案 1 :(得分:0)

Chris Tybur,我尝试过他们的FTP组件并发现了许多错误。我不推荐使用ComponentSpace的FTP