asp.net – visio服务器端自动化的替代方案
Mircosoft建议不要使用办公工具的服务器端自动化(
Considerations for server-side Automation of Office)
但是,我看不到其他选择.我正在尝试做的是将vsd文件转换为html(超链接的图像映射).这在 Aspose.Diagram尚不可能,这里引用了类似问题的答案.将在LibreOffice 3.5中使用的 LibVisio尚未完成,也不支持超链接. 还有什么我可以尝试的吗? 解决方法
办公自动化和网络应用程序的主要问题很简单,办公程序并不是设计为同时执行多个副本.如果在Web请求之后立即执行Visio或其他Office程序,可能会遇到什么类型的共享内存问题.这些应用程序的内存占用量不足以处理10个甚至100个同时连接.此外,请求浏览器可能因任何原因而消失,并且确实没有阻止应用程序执行的好方法.
考虑到这一点,只要您限制应用程序,就可以获得成功.一种方法是使用Web服务设置一种排队系统,这样Visio就不会在服务器上多次实例化. 我要做的是建立一个“visio服务器”.意味着安装了visio的单独机器.然后我会编写一个控制器应用程序,其目的是从队列堆栈中取出一个作业,运行作业并保存结果.这样,您可以确保一次只能运行一个作业,因此一次只能运行一个Visio副本.请注意,这整齐地处理了一些许可问题. 因此,Web应用程序会将作业发布到数据库队列.控制器将轮询这些作业,并在找到它们时执行它并存储结果.冲洗并重复. Web应用程序可以轮询数据库以查看结果何时准备好并将其提供给用户.可能是某种类型的Ajax页面每15秒检查一次.或者,用户可以通过电子邮件发送结果,或者他们可以“稍后再回来查看”…… 作为旁注,这可以避免任何类型的安全风险,因为控制器和visio将在单独的机器上运行.这个单独的机器不需要任何其他权限,只需简单地执行visio并从数据库中提取作业信息.所以,即使你有某种类型的流氓visio东西,它的损害仅限于那台机器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何使用ASP.NET MVC 5和OWIN获取Facebook的
- asp.net core 日志
- 在Asp.net中加载平衡,在开发时我应该考虑什么?
- asp.net-web-api – 如何在ASP.NET WebAPI RC中绑定一个简单
- asp.net-core – IApplicationBuilder不包含UseStaticFiles
- asp.net-mvc – 如何使用RequiresJs加载typescript模块(asp
- ASP.NET MVC删除操作方法中的查询字符串
- asp.net – Quartz.net调度程序在部署后不会触发作业/触发器
- asp.net-mvc-3 – 动态加载部分视图
- asp.net – jQuery AJAX vs. UpdatePanel
- 在ASP.NET中使用querystring的最佳做法?
- asp.net-mvc – VS 2012中缺少“Browse With …”
- ASP.Net OData在LB中通过SSL终止失败
- asp.net – 使用Linq将单个值返回给SQL
- ASP.NET MVC4 Google oAuth
- asp.net mvc CodeFirst模式数据库迁移步骤详解
- asp.net-mvc-4 – 如何在ASP.NET MVC 4中从数据库
- asp.net – RegisterStartupScript不适用于Scrip
- asp.net-mvc – 具有指定操作的Response.Redirec
- Asp.net MVC中Razor常见的问题与解决方法总结