首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使进程在iis上运行?

如何使进程在iis上运行?
EN

Stack Overflow用户
提问于 2011-05-18 17:04:35
回答 1查看 332关注 0票数 0

亲爱的所有人,我有下面的代码来打开一个文件,点击一个按钮

( System.Diagnostics.Process.Start("soffice.exe",filepath);

soffice.exe将打开.odt文件& filepath包含我想打开的文件的完整路径。

当我在本地系统上执行代码时,这是非常好的,但是当我在iis服务器上承载它(5.1)时,它没有采取任何行动(事件也没有抛出任何错误)。我的文件正在访问我的项目中的一个文件夹,而不是外部。善意地建议了可能的原因和解决方案。

EN

回答 1

Stack Overflow用户

发布于 2011-05-18 17:42:22

作为对你上述评论的回应..。

首先,我所说的"web服务帐户“并不是指web服务。我指的是运行web应用程序的web服务器上的服务帐户。这可能是登录到网站的用户的帐户,或者默认的IIS帐户等等。解决这个问题的最好方法是在调用soffice.exe时完全限定它的路径,这样您就不必担心PATH环境变量了。(此外,您不必担心另一个应用程序会以恶意或意外的方式运行,并以未知的权限执行一些意外的操作。)

第二,在您的方法中似乎存在一个关键的设计缺陷。即使您确实设法让应用程序在服务器上启动,它也会在服务器上启动。资源管理器是否位于实际的web服务器上?如果没有,那么在服务器上打开应用程序中的文件对他没有任何好处。如果他坐在服务器上,那么他是唯一能使用这个的人。

您不想打开服务器上的文件。你想把文件交给客户。然后,如果用户(示例中的资源管理器)可以在其本地计算机上以soffice.exe打开文件。如果他的环境设置正确,它应该自动打开。(尽管浏览器也会让他选择将文件保存在本地,然后打开它。)只要链接到文件就够了。有什么特别的原因不可以吗?

如果您需要使用表单post而不是简单的链接来传递文件,您仍然可以从服务器端代码中流文件。下面是前面的一个问题,讨论如何做到这一点。基本上,这个过程包括清除输出缓冲区、设置标头 (内容长度、内容类型、建议的文件名等)、流字节以及刷新/关闭输出缓冲区。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6048368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档