从SharePoint 2013 Online App宿主网站外部处理文档



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

我能够使用jQuery ajax从主机网站集检索文件,并且我接收到的文件格式似乎是字节流(jQuery似乎将其存储为字符串,或者至少,我用于调试的浏览器将数据解释为字符串)。

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

我的问题是:

  • 这是使用应用程序或
    处理文档的最简单方法吗有没有一种更简单的方法可以提取
    上文档的内容主机站点
  • 假设我目前的方法是最好的方法,有什么方法可以防止我遇到的文件损坏吗

如有任何协助,我们将不胜感激。

好吧,"这是最简单的方法吗"是一个非常主观的话题,现在应该避免,因为听起来你已经达到了90%的目标。

损坏文件的问题可能和base64编码问题一样简单,因为字节流已编码为字符串。(或者你的字节流不是你想要的文件)如果你发布了你用来用字符串本身解码流的代码,我们可以很快提供帮助。

在这种情况下,如果它看起来是损坏的,我会使用fiddler来捕获原始响应,然后在linqpad或单元测试中对其进行解码。然后你可以确定它是损坏的还是你有错误的文件。所谓错误的文件,我的意思是您的字节流中可能有一个html错误页面,而不是您期望的文档。

回到最简单的方法。。。听起来您希望在主机列表中显示工作流。如果你有很多网站想要这样做,或者有大量的文档需要处理,那么你可能想要创建一个WCF服务来处理这一问题,这是一个额外的维护和管理开销,但你可能不想要,例如服务将托管在哪里。

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

但是,如果您不需要UI或只需要有限的UI来识别哪些文档以及何时处理它们,请研究列表接收者选项的工作流程。

相关内容

  • 没有找到相关文章

最新更新