gpt4 book ai didi

asp.net - visio 服务器端自动化的替代方案

转载 作者:行者123 更新时间:2023-12-01 04:06:38 24 4
gpt4 key购买 nike

Mircosoft 建议不要使用服务器端自动化办公工具 (Considerations for server-side Automation of Office)
但是,我看不到其他选择。我想要做的是将 vsd 文件转换为 html(用于超链接的图像+ map )。这在 Aspose.Diagram 中尚不可能,这是在此处对类似问题的回答中引用的。 LibVisio在 LibreOffice 3.5 中使用/将使用的内容尚未完成,也不支持超链接。

还有什么我可以尝试的吗?
如果不是:有关如何为 ASP.NET Web 服务设置访问权限的任何提示,以便它可以访问 visio 而不会带来重大安全风险,我们将不胜感激。 (一个教程只是将其设置为模拟系统管理员帐户,这对我来说听起来有点危险)

最佳答案

办公自动化和 Web 应用程序的主要问题在于,办公程序并非设计为同时执行多个副本。如果从 Web 请求中立即执行 Visio 或其他办公程序,您可能会遇到什么类型的共享内存问题,这无从知晓。这些应用程序的内存占用不足以处理 10 个甚至 100 个同时连接。此外,发出请求的浏览器可能会因为各种原因而消失,而且真的没有什么好的方法可以阻止应用程序的执行。

考虑到这一点,只要您限制应用程序,您就可以成功。一种方法是使用 Web 服务设置一种排队系统,这样 Visio 就不会在服务器上多次实例化。

我要做的是设置一个“visio 服务器”。意味着安装了 visio 的单独机器。然后我将编写一个 Controller 应用程序,其目的是从队列堆栈中提取单个作业,运行该作业并保存结果。通过这种方式,您可以确保一次只运行一项作业,因此一次只运行一个 Visio 副本。请注意,这可以巧妙地处理一些许可问题。

因此,Web 应用程序会将作业发布到数据库队列。 Controller 将轮询这些作业,一旦找到,就会执行它并存储结果。冲洗并重复。

Web 应用程序可以轮询数据库以查看结果何时准备就绪并将其提供给用户。可能是某种类型的 Ajax 页面,每 15 秒左右检查一次。或者,用户可以只通过电子邮件发送结果,或者他们可以“稍后再查看”......

作为旁注,这避免了任何类型的安全风险,因为 Controller 和 visio 将在单独的机器上运行。这台单独的机器不需要任何其他权限,只需执行 visio 并从数据库中提取作业信息。因此,即使您有某种类型的流氓 visio 事情,损坏也仅限于那台机器。

关于asp.net - visio 服务器端自动化的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8901748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com