我使用以下代码段打开本地docx文件,当我在Visual Studio中按Ctrl + F5时它运行正常。我只需单击按钮,我的机器上的Word2007就会打开,并在那里显示docx。但是在我将应用程序发布到生产服务器之后,它无效。单击相同的按钮后,没有任何反应。有人能告诉我为什么吗?
我想要的是从asp.net应用程序在客户端的Word 2007中打开本地存储的docx。我不想使用office COM对象。
我的代码:
ProcessStartInfo psi = new ProcessStartInfo(@"winword.exe",@"/test.docx");
Process.Start(psi);
非常感谢。
答案 0 :(得分:3)
您的代码正在尝试在服务器上而不是在客户端上打开Word。它在开发中工作的唯一原因是客户端和服务器在同一台机器上。
由于浏览器安全限制,您无法在客户端上打开Word。但是,如果您提供该文件的链接,则用户可以下载并打开该文件,如果他们安装了Word。
答案 1 :(得分:1)
如果要打开本地存储的文档,请在客户端的计算机上创建指向该文档的链接(使用客户端硬盘上的路径)。浏览器会要求用户允许打开它,但这应该有效。
您的代码工作的原因是因为服务器和客户端在调试时是同一台机器。开发服务器甚至可以使用您的个人资料运行。
在生产中,服务器可以位于世界的另一端。您在代码段中显示的C#代码将在服务器上执行。
答案 2 :(得分:0)
检查文件是否存在于同一位置。
ProcessStartInfo psi = new ProcessStartInfo() 正在服务器上,它正在尝试从服务器位置选择文件,它永远不会运行客户端文件。
答案 3 :(得分:0)
你唯一能做的就是让他们下载文件。如果他们没有办公室,或者没有合适的兼容包,他们将无法打开它。