Загрузить большой файл на Sharepoint в приложении Silverlight - PullRequest
0 голосов
/ 24 ноября 2010

Я пробовал примерно дюжину различных способов загрузки файлов на sharepoint из приложения silverlight.У них либо серьезные ограничения (размер файла не должен превышать мегабайт), либо много проблем с безопасностью, которые я не смог преодолеть.Я попытался:

  • WCF (мы пытаемся не использовать какие-либо пользовательские службы WCF на всех ваших финансовых ресурсах, хотя это метод, который я получил на половину работы)
  • Веб-службы Sharepoint
  • Клиентская объектная модель
  • HTTP put
  • Поток записи веб-клиента

Я видел много разных примеров людей, делающих совершенно разные вещино ни один из них не работает, и все они кажутся «старым» способом ведения дел.Я использую silverlight 4, sharepoint 2010 на IIS 7. Есть ли лучший способ загрузки больших (скажем, 20-30 мегабайт) файлов?Я просто хочу записать файл в библиотеку документов.

Ответы [ 3 ]

0 голосов
/ 22 марта 2011

Просто подумал, что у Silverlight есть вещь, которая называется HTML Bridge, которая позволяет ему взаимодействовать с остальной частью страницы. Подумайте о вызове функции javascript из Silverlight, и пусть функция javascript действительно загрузит

ОБНОВЛЕНИЕ - Javascript ClientOM, похоже, не имеет метода SaveBinaryDirect :-( Как насчет выполнения некоторого ExecuteQueryAsync, а затем в функции обратного вызова success (больше не в потоке пользовательского интерфейса), используя версию File.SharePoint.Client Microsoft? Я знаю, что для этого потребуется загрузить более крупную сборку, так что, возможно, это не так хорошо.

Интересно, есть ли способ заставить clientOM использовать более эффективную привязку при вызове веб-служб ...

Martin

0 голосов
/ 14 апреля 2014

Ограничение размера загрузки по умолчанию для клиентской объектной модели SharePoint составляет 2 МБ.Вы можете изменить это ограничение, изменив свойство MaxReceivedMessageSize службы.

Это можно сделать двумя способами:

  • программно - как описано в эта ссылка - но это не будет работать в Silverlight, например

  • через PowerShell.На сервере, на котором установлен SharePoint, запустите Командная консоль SharePoint (убедитесь, что вы запускаете ее под учетной записью администратора фермы) и выполните следующие команды.

    $ ws = [Microsoft.SharePoint.Administration.SPWebService] :: ContentService $ ws.ClientRequestServiceSettings.MaxReceivedMessageSize = 52428800

    $ ws.Update ()

Изменит ограничение загрузки на 52428800 байт - или 50 МБ.Теперь перезапустите веб-сайт, на котором размещен ваш сайт SharePoint (или весь IIS), чтобы изменения вступили в силу.

0 голосов
/ 25 ноября 2010

У меня была похожая проблема.Мне помогли настройки уровня веб-приложения от центрального администратора, изменение лимита asp.net в web.confit и следующая статья.

http://blogs.msdn.com/b/sridhara/archive/2010/03/12/uploading-files-using-client-object-model-in-sharepoint-2010.aspx

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