Асинхронный поток умирает в веб-части SharePoint - PullRequest
1 голос
/ 08 апреля 2009

Я написал пользовательскую веб-часть для SharePoint 2007, которая загружает существующий пользовательский элемент управления. Одна из вещей, которую выполняет пользовательский элемент управления, - асинхронная загрузка файла через FTP. Я использую стороннюю библиотеку FTP, которая имеет методы BeginUpload / EndUpload для асинхронной передачи файлов. У меня также есть панель обновления в пользовательском элементе управления, которую я использую для отображения промежуточного количества переданных байтов на основе события, вызванного библиотекой FTP. Я добавил все необходимые настройки AJAX в web.config.

Все отлично работает, если я запускаю пользовательский элемент управления из отдельного проекта. Но когда я получаю доступ к веб-части, в которой находится элемент управления, и пытаюсь загрузить файл, библиотека FTP передает около 64 КБ, а затем поток, на котором она работает, умирает. Я получаю сообщение в окне вывода VS:

Поток 'Win32 Thread' (0xf34) завершился с кодом 0 (0x0).

Я получаю несколько из них, а затем библиотека FTP выдает исключение (в основном, оно истекает), рабочие процессы IIS взрываются, и все это останавливается. Есть ли что-то особенное, что мне нужно сделать в моей конфигурации SharePoint или в веб-части, чтобы это работало? Похоже, что-то в SharePoint, так как тот же код работает нормально, если SP отсутствует.

Ответы [ 2 ]

0 голосов
/ 03 января 2010

Крис Тибур, я попробовал их FTP-компонент и нашел много ошибок. Я бы не рекомендовал ComponentSpace FTP

0 голосов
/ 29 апреля 2009

Я отправил эту проблему в службу поддержки разработчиков Microsoft SharePoint, и они смогли воспроизвести ошибку с помощью используемой библиотеки FTP, которая поставляется из ComponentSpace. Обычно то, что я пытаюсь сделать, возможно, но по какой-то причине оно просто не хотело работать.

Их решением было сохранить файл на веб-сервере, выполнив запрос Request.Files (0) .SaveAs, а затем загрузив его по FTP. Не идеально, но это дает мне показатели прогресса, которые я хотел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...