【问题标题】:Install windows-service on sever 2016 (on prem) fails在服务器 2016(本地)上安装 windows-service 失败
【发布时间】:2019-12-31 09:57:12
【问题描述】:

我创建了一个 Windows 服务。它可以在我的开发机器和 win 2012 R2 服务器上安装并正常工作。 我尝试在 2016 服务器上安装该服务,但失败并出现错误:

尝试在 C:\Program Files\xxx\xxx.AGENT.exe 程序集。 System.Reflection.ReflectionTypeLoadException:无法加载一个或 更多请求的类型。检索 LoaderExceptions 属性 了解更多信息。中止 C:\Program 的安装 文件\xxx\xxx.AGENT.exe。

安装命令位于 .bat 文件中。

我以管理员身份启动命令提示符。 将目录更改为包含 .bat 文件的目录并运行它。

这适用于 Win 2012,但不适用于 Win 2016。

有什么建议吗?

【问题讨论】:

  • 可能LoadLibrary("C:\Program Files\xxx\xxx.AGENT.exe") 由于不满足 DLL 依赖关系而失败。使用 MSDN Dependency Walker 工具 (depends.exe) 检查您的 .exe 文件为哪些 DLL 声明导入,并检查 WS2016 机器是否已全部安装。

标签: c# .net windows-services windows-server-2016


【解决方案1】:

在我看来,这似乎是您服务中的 .dll 文件存在问题。检查版本,将每个系统引用配置为“CopyLocal = true”并将 dll 复制到 bin 文件夹,看看是否有帮助。

【讨论】:

    【解决方案2】:

    事实证明,W2016 服务器上缺少 .net 4.7.2。首先(从文件夹名称)它似乎已安装,但此工具显示安装的是 4.7 而不是 4.7.2。

    http://www.asoft.be/prod_netver.html

    【讨论】:

      猜你喜欢
      • 2019-01-28
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      相关资源
      最近更新 更多