从SharePoint 2013在线应用程序主机站点外部处理文档

时间:2013-11-21 12:51:44

标签: jquery sharepoint-2013 sharepoint-apps sharepoint-online

我正在尝试创建一个SharePoint 2013在线应用程序,用于处理存储在主机网站集上的文档。

我能够使用jQuery ajax从主机网站集中检索文件,我收到的格式似乎是一个字节流(jQuery似乎存储为字符串或至少,数据正在存在我用来调试的浏览器解释为一个字符串。

我的结论是,我应该将收到的文件发送到WCF应用程序,以便使用C#将流写入文件(在WCF服务的文件系统上),然后提取生成的文件的内容。但是,生成的文件已损坏。我的假设是,在该过程的某个地方(SharePoint主机应用于应用程序上的jQuery或应用程序到WCF应用程序)原始数据已损坏。

我的问题是:

  • 这是使用App或
    处理文档的最简单方法吗? 是否有一种更简单的方法来提取文件的内容 主持网站?
  • 假设我当前的方法是最好的方法,有没有办法防止我遇到的文件损坏?

非常感谢任何协助。

1 个答案:

答案 0 :(得分:1)

好的,'这是最简单的方法'是一个非常主观的话题,现在要避免,因为听起来你对你想要的地方有90%。

您遇到损坏文件的问题可能与base64编码问题一样简单,因为字节流已编码为字符串。 (或者您的字节流不是您期望的文件)如果您发布用于使用字符串本身解码流的代码,我们可以快速帮助。

在这样的情况下,它似乎是一个腐败,我使用fiddler捕获原始响应,然后在linqpad或单元测试中解码它。然后你可以确定它是否是损坏或者你有错误的文件。错误的文件,我的意思是你的字节流中可能有一个html错误页面,而不是你期望的文档。

回到最简单的方法......听起来好像你想要主机列表上的工作流程。如果您有许多站点要执行此操作或要处理大量文档,那么您可能希望创建一个WCF服务来处理此问题,这是您可能不需要的额外维护和管理开销,例如服务将在何处托管。

同样,非常主观,因为您的“处理”逻辑可能更容易在不同的框架或语言中表达。 LightSwitch HTML客户端应用程序也可能是一个有趣的地方,自动托管应用程序为您提供服务后端和托管应用程序的方法,以便您可以在客户端上使用ajax将文档发送到后端服务并执行您的逻辑在C#中。我实际上已经部署了一个非常类似的解决方案,非常快速地部署到生产中。

但如果您不需要UI或仅限有限的ui来识别哪些文档以及何时处理它们,请调查列表接收器选项的工作流程