微软建议不要对办公工具进行服务器端自动化(服务器端办公自动化的注意事项)
但是,我看不到其他选择。我想做的是将 vsd 文件转换为 html(超链接的图像+地图)。这在以下情况下尚不可能Aspose.图,在此处对类似问题的回答中引用了该内容。LibVisioLibreOffice 3.5 中使用的版本尚未完成,也不支持超链接。
还有什么我可以尝试的吗?
如果没有:任何有关如何设置 ASP.NET Web 服务访问权限以便其可以访问 visio 而不会造成重大安全风险的提示将不胜感激。 (一个教程只是将其设置为模拟系统管理员帐户,这对我来说听起来有点危险)
办公自动化和网络应用程序的主要问题很简单,办公程序的设计不适合同时执行多个副本。如果根据 Web 请求立即执行 Visio 或其他 Office 程序,则无法确定可能会遇到哪种类型的共享内存问题。这些应用程序的内存占用不适合处理 10 个甚至 100 个同时连接。此外,发出请求的浏览器可能会因多种原因而消失,并且确实没有好的方法来阻止应用程序执行。
考虑到这一点,只要限制应用程序,您就可以获得成功。一种方法是使用 Web 服务设置一种排队系统,这样 Visio 就不会在服务器上多次实例化。
我要做的是建立一个“visio 服务器”。意思是安装了 visio 的单独计算机。然后,我会编写一个控制器应用程序,其目的是从队列堆栈中提取单个作业,运行该作业并保存结果。通过这种方式,您可以确保一次仅运行一项作业,因此一次仅运行一份 Visio 副本。请注意,这可以巧妙地处理一些许可问题。
因此,Web 应用程序会将作业发布到数据库队列。控制器将轮询这些作业,并在找到作业后执行它并存储结果。冲洗并重复。
Web 应用程序可以轮询数据库以查看结果何时准备好并将其提供给用户。可能是某种类型的 Ajax 页面,每 15 秒左右检查一次。或者,可以通过电子邮件向用户发送结果,或者他们可以“稍后再回来查看”......
附带说明一下,这可以避免任何类型的安全风险,因为控制器和 visio 将在单独的计算机上运行。除了简单地执行 visio 并从数据库中提取作业信息之外,这台单独的计算机不需要任何其他权限。因此,即使您有某种类型的流氓 visio 东西,损坏也仅限于那一台机器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)