Asp.net 使用互操作生成“docx”不用于终止RDC
我有一个ASP.Net framework web应用程序,它试图从发票创建Asp.net 使用互操作生成“docx”不用于终止RDC,asp.net,windows,iis,permissions,windows-server-2016,Asp.net,Windows,Iis,Permissions,Windows Server 2016,我有一个ASP.Net framework web应用程序,它试图从发票创建.docx(或.pdf)文件 在我的本地机器上,在开发环境中,代码可以很好地完成它的工作 但在生产服务器中,我遇到了一个问题,即访问IIS_用户访问“MicrosoftWord97-2003文档” 我通过实现以下问题的公认答案来解决该问题 但现在,当我关闭远程桌面连接并尝试从网站获取文件时,我从服务器获得错误500,当再次远程到服务器时,我可以下载文件,我的代码在生产服务器上运行良好 换句话说,当RDP断开连接时,II
.docx
(或.pdf
)文件
在我的本地机器上,在开发环境中,代码可以很好地完成它的工作
但在生产服务器中,我遇到了一个问题,即访问IIS_用户访问“MicrosoftWord97-2003文档”
我通过实现以下问题的公认答案来解决该问题
但现在,当我关闭远程桌面连接并尝试从网站获取文件时,我从服务器获得错误500,当再次远程到服务器时,我可以下载文件,我的代码在生产服务器上运行良好
换句话说,当RDP断开连接时,IIS无法访问“MicrosoftWord97-2003文档”
我认为关闭RDP会导致用户注销,这就是为什么IIS_用户无法访问“MicrosoftWord97-2003文档”
我也在谷歌上搜索过这个,但没有找到任何方法来修复它。有没有办法让用户即使在远程连接关闭后仍保持登录状态?当使用COM与word文档交互时,您实际上是在与桌面交互 windows 2008之后,windows服务不再支持与桌面交互,iis也在svcHost内运行,请参阅: 这就是为什么您可以在RDP连接到服务器时使其工作,但在断开与RDP的连接后无法运行代码的原因
编辑后,Lex Li提供了更详细的说明。使用DocX库,而不是interop: 努吉:
Install-Package DocX -Version 1.3.0
GitHub:我不确定我是否理解正确,但依赖服务帐户用户通过RDP登录的流程听起来有根本性的缺陷。@Filburt请解释更多。不要使用Interop创建Word或Excel。它会产生各种各样的问题,就像你遇到的问题一样。使用专门的库。@MohammadRN我认为Elendil的回答很好地解释了这一点。我自己也没有使用过,但也许?那是不正确的。贵公司有一篇关于这方面的官方文章