代码之家  ›  专栏  ›  技术社区  ›  Chris Tybur

SharePoint Web部件中的异步线程终止

  •  1
  • Chris Tybur  · 技术社区  · 15 年前

    我为SharePoint2007编写了一个加载现有用户控件的自定义Web部件。用户控件执行的操作之一是通过ftp异步上载文件。我使用的是第三方FTP库,它具有用于异步文件传输的beginupload/endupload方法。我在用户控件中还有一个更新面板,用于根据ftp库引发的事件显示已传输字节数的运行总数。我已经将所有必要的Ajax设置添加到web.config中。

    如果我从一个单独的项目单独运行用户控件,那么一切都会很好地工作。但是,当我访问承载控件的Web部件并尝试上载时,ftp库会传输大约64kb,然后它运行的线程就会消失。我在vs输出窗口中得到的消息是:

    线程“win32 thread”(0xf34)已退出,代码为0(0x0)。

    我得到了其中的一些,然后ftp库抛出一个异常(基本上超时),IIS工作进程崩溃,整个过程停止。在我的SharePoint配置或Web部件中是否需要执行某些特殊操作才能使此工作正常?这似乎与SharePoint有关,因为如果SP不在图片中,相同的代码也可以正常工作。

    2 回复  |  直到 15 年前
        1
  •  0
  •   Chris Tybur    15 年前

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

    他们的解决方案是通过执行request.files(0).saveas将文件保存到Web服务器上,然后执行ftp上载。不理想,但它给了我想要的进度指标。

        2
  •  0
  •   user242629    15 年前

    Chris Tybur,我试过他们的ftp组件,发现了很多错误。我不推荐componentspace的ftp