【问题标题】:Running Windows service built against .net framework 1.0 in Windows Server 2012 R2在 Windows Server 2012 R2 中运行针对 .net framework 1.0 构建的 Windows 服务
【发布时间】:2015-08-28 19:57:32
【问题描述】:

我有一个使用 .net 框架 1.0 和所有 .net 1.0 程序集引用构建的 .net Windows 服务。现在我想在 Windows Server 2012 R2 上运行该服务,但它不支持 .net 1.0。有没有办法在 Windows Server 2012 R2 上运行这个服务?

我尝试使用 app.config 中的程序集重定向将程序集重定向到 .net 2.0 程序集,但在启动服务时我仍然收到错误 1053,这可能是因为加载了不正确的程序集。有没有其他方法可以解决这个问题?

【问题讨论】:

  • 由于 Windows Server 2012 R2支持 .NET Framework 1.0 - 不,无法在此服务器上运行此服务。您需要针对更新版本的 .NET 框架重新编译此服务
  • ok.. 重新编译最新版本是一种选择,但我们可以通过从应用程序配置文件重定向到 2.0 程序集来实现这一点..
  • 不,你不能。您可以使用程序集重定向执行的操作是为程序集指定特定版本 - 例如将对“Json.NET”的所有请求重定向到该程序集的 7.0 版。但是,您不能使用这种技术神奇地重定向到 .NET Framework 的新版本。
  • 我只是试图将该服务中使用的引用 dll 重定向到最新版本。例如我的服务使用版本 1.0.5000.0 的 system.dll,现在我正在尝试将其重定向到版本 2.0.0.0

标签: c# .net windows-services windows-server-2012-r2


【解决方案1】:

您尝试执行的操作将不起作用,这在 cmets 之前已说明。
您仅有的两个选择是:

  1. 针对较新的受支持框架重新编译应用程序,并处理由此产生的任何补救措施(合同损坏、功能已弃用等)
  2. 在支持 .Net 1.0 的旧版服务器上运行服务

既然您说重新编译代码是一种选择,我认为这是迄今为止您的最佳选择,原因有很多,其中最重要的是能够在受支持的操作系统上使用受支持的框架。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-18
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多