当管理员用户使用 Rdp 登录服务器时代码运行

Posted

技术标签:

【中文标题】当管理员用户使用 Rdp 登录服务器时代码运行【英文标题】:Code runs when admin user logged on the Server with Rdp 【发布时间】:2019-08-05 08:30:19 【问题描述】:

我用 C# 编写了一些代码,它是从我公司服务器上的 Microsoft Dynamics CRM 2015 调用的。我在 CRM 表单上有一个“下载”按钮。当我按下此按钮时,它会触发 CRM 服务器机器中的 mvc 项目控制器功能下的代码。它在此服务器中打开一个 Excel 模板并从 CRM 数据库中获取信息。当它将此表单提供给调用客户端用户时,它将其转换为 pdf 并将 pdf 表单提供给客户端用户。该代码不会向用作模板的 excel 文件写入任何内容。 我的问题是当我使用 Rdp 以 CRM 管理员身份进入服务器时,代码完美执行并将 pdf 提供给客户端用户。但是,当我关闭 rdp 时,代码不起作用。我从服务器查看了 dconfig,一切正常。 我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

Microsoft 对此类用法有一个重要的免责声明:

“微软目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能会展示在此环境中运行 Office 时出现不稳定的行为和/或死锁。"https://support.microsoft.com/en-ca/help/257757/considerations-for-server-side-automation-of-office

您可以尝试以下方法: - 在该服务器上使用不会过期的密码创建本地管理员。 - 设置应用程序的 IIS 应用程序池以作为特定用户运行 - 将服务器的 DCOM 身份修改为新用户 根据此 Microsoft 博客:https://blogs.msdn.microsoft.com/dsnotes/2014/09/25/com-client-failing-with-error-8000401a/

【讨论】:

嗨,我做了下面的事情,但没有任何改变。问题依然存在 您可以尝试以下操作: - 在该服务器上使用不会过期的密码创建本地管理员。 - 设置应用程序的 IIS 应用程序池以作为特定用户运行 - 将服务器的 DCOM 身份修改为新用户 我也尝试过你提到的这个。然而它失败了,问题还在继续。有没有办法让交互式用户始终在 rdp 上连接到服务器? 我们能不能做个诡计来欺骗服务器有人连接了rdp。

以上是关于当管理员用户使用 Rdp 登录服务器时代码运行的主要内容,如果未能解决你的问题,请参考以下文章

在 RDP 会话 Windows Server 2012 中查找用户断开连接时间

如果没有用户登录,则无法通过Jenkins运行COM应用程序

远程桌面协议RDP

Linux的用户管理

LInux用户管理

WindowsWindows server2008远程桌面只允许同时存在一个会话