在Silverlight应用程序中将大型文件上载到Sharepoint

时间:2010-11-24 20:52:29

标签: silverlight sharepoint sharepoint-2010

我已经尝试了从silverlight应用程序上传文件到sharepoint的十几种不同方法。它们要么具有严重的限制(文件大小限制小于1兆字节左右),要么是许多我无法解决的安全问题。我试过了:

  • WCF(我们试图不在所有FYI上使用任何自定义WCF服务,尽管这是我已经半工作的方法)
  • Sharepoint网络服务
  • 客户对象模型
  • HTTP put
  • Webclient写入流

我看到很多不同的例子,人们做了完全不同的事情,但似乎都没有工作,似乎他们都是“旧的”做事方式。我在IIS 7上使用silverlight 4,sharepoint 2010.是否有上传大型(比如20-30 meg)文件的最佳做法?我只想将文件转储到文档库中。

3 个答案:

答案 0 :(得分:0)

我有类似的问题。从中央管理员调整Web应用程序级别设置,更改web.confit中的asp.net限制以及下面的文章帮助了我。

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

答案 1 :(得分:0)

刚想到Silverlight有一个名为HTML Bridge的东西,它允许它与页面的其余部分进行交互。考虑从Silverlight调用javascript函数,让javascript函数执行实际上传

更新 - Javascript ClientOM似乎没有SaveBinaryDirect方法:-( 如何使用Microsoft.SharePoint.Client版本的File做一些ExecuteQueryAsync然后在成功回调函数(不再在UI线程上)?我知道这需要下载更大的组件,所以也许这不太好。

我想知道在调用Web服务时是否有办法让clientOM使用更高效的绑定...

马丁

答案 2 :(得分:0)

SharePoint客户端对象模型的默认上载大小限制为2 MB。您可以通过修改服务的MaxReceivedMessageSize属性来更改该限制。

这可以通过两种方式完成:

  • 以编程方式编写 - 如this link中所述 - 例如,这在Silverlight中无法工作

  • 通过powershell。在安装了SharePoint的服务器上,启动SharePoint Management Shell(确保在服务器场管理员帐户下运行它)并运行以下命令。

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

    $ ws.Update()

这会将上传限制更改为52428800字节 - 或50 MB。现在,重新启动托管SharePoint站点(或整个IIS)的网站,以使更改生效。