使用 Interop 生成 `docx` 在终止 RDC 时不起作用
Generating `docx` using Interop not working on terminating RDC
我有一个 ASP.Net 框架 Web 应用程序,它试图从发票创建 .docx
(或 .pdf
)文件。
在我的本地机器上,在开发环境中,代码可以正常工作。
但是在生产服务器中我遇到了一个问题,访问 IIS_Users 到 "Microsoft Word 97 - 2003 Document"。
我通过实施以下问题的已接受答案来解决该问题。
Accessing Office Word object model through asp.net
但是现在,当我关闭远程桌面连接并尝试从网站获取文件时,我从服务器收到错误 500,当再次远程连接到服务器时,我可以下载文件并且我的代码在生产服务器上运行良好。
换句话说,当 RDP 断开时,IIS 无法访问 "Microsoft Word 97 - 2003 Document"。
我认为关闭 RDP 会导致用户注销,这就是 IIS_Users 无法访问 "Microsoft Word 97 - 2003 Document" 的原因。
我也用谷歌搜索了这个,但没有找到任何修复方法。有没有办法让用户在远程连接关闭后仍保持登录状态?
使用COM与word文档交互时,实际上是在与桌面交互
windows2008之后,windows服务不再支持与桌面交互,i也在运行svcHost中,参考:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc756339(v=ws.10)
这就是为什么您可以在 RDP 连接到您的服务器时使其正常工作,但在与 RDP
断开连接后无法获取代码 运行
已编辑,link由Lex Li提供,描述更详细。
使用 DocX 库,而不是互操作:
NuGet:
Install-Package DocX -Version 1.3.0
我有一个 ASP.Net 框架 Web 应用程序,它试图从发票创建 .docx
(或 .pdf
)文件。
在我的本地机器上,在开发环境中,代码可以正常工作。
但是在生产服务器中我遇到了一个问题,访问 IIS_Users 到 "Microsoft Word 97 - 2003 Document"。
我通过实施以下问题的已接受答案来解决该问题。
Accessing Office Word object model through asp.net
但是现在,当我关闭远程桌面连接并尝试从网站获取文件时,我从服务器收到错误 500,当再次远程连接到服务器时,我可以下载文件并且我的代码在生产服务器上运行良好。
换句话说,当 RDP 断开时,IIS 无法访问 "Microsoft Word 97 - 2003 Document"。
我认为关闭 RDP 会导致用户注销,这就是 IIS_Users 无法访问 "Microsoft Word 97 - 2003 Document" 的原因。
我也用谷歌搜索了这个,但没有找到任何修复方法。有没有办法让用户在远程连接关闭后仍保持登录状态?
使用COM与word文档交互时,实际上是在与桌面交互
windows2008之后,windows服务不再支持与桌面交互,i也在运行svcHost中,参考:https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc756339(v=ws.10)
这就是为什么您可以在 RDP 连接到您的服务器时使其正常工作,但在与 RDP
断开连接后无法获取代码 运行已编辑,link由Lex Li提供,描述更详细。
使用 DocX 库,而不是互操作:
NuGet:
Install-Package DocX -Version 1.3.0