【问题标题】:What happens when .NET Core hosting bundle's version is behind development machine versions当 .NET Core 托管包的版本落后于开发机器版本时会发生什么
【发布时间】:2019-04-10 14:41:52
【问题描述】:

情况

今天 .NET Core 2.1 中存在一个安全漏洞,我们所有的开发人员都将他们的 .NET Core 2.1.x 更新到 .NET Core 2.1.10,但不知道什么时候可以更新 .NET我们的生产网络服务器上的核心托管包。

问题

  1. 我们更新开发人员机器的事实是否会因为我们尚未更新 Web 服务器而失效?
  2. 一旦我们的开发人员的代码被推送到生产环境中,这些应用程序会在我们的 Web 服务器上针对 .NET Core 的旧库运行,还是会以某种方式在我们的开发人员机器正在构建的新版本中运行?
  3. 如果我们的项目曾经在旧版本的 .NET Core 库下运行,是否会因为我们的开发人员针对旧版本构建而遇到兼容性问题?
  4. 我想我的最终问题是,我们公司是否应该始终制定政策,在更新开发机器之前更新 Web 服务器上的托管包?

【问题讨论】:

  • 讨论范围太广了,不同的问题需要不同的分辨率,github.com/aspnet/Announcements/issues 有时只需要升级运行时,而在其他情况下需要更新托管捆绑包,但实际公告包含说明。如果您确实需要公司政策,请遵循 Microsoft 的文章。

标签: iis asp.net-core .net-core asp.net-core-mvc asp.net-core-2.1


【解决方案1】:
  1. 如果您想从 .NET Core 2.1.x 到 .NET Core 2.1.10 的更新中受益,我会说:虽然您不更新服务器,但可以。

    李>
  2. 应用程序将尝试在服务器上安装的框架下运行。如果您使用默认模式发布,您的代码将取决于生产机器上安装的框架。但是,您可以更改为独立部署模式并将框架与您的代码一起嵌入到“目标平台”(https://www.danielcrabtree.com/blog/496/net-core-self-contained-and-framework-dependent-deployments-explained)上。

  3. 它应该保持兼容,因为版本都是 2.1.x。但是,在单独的环境中对其进行测试之前,我不会在生产中尝试它。

  4. 我认为您不应该在首先测试新版本之前更新您的生产服务器。我会在我的开发机器上更改目标框架,然后我会在(至少)预生产环境中更新框架和代码。我会在这个环境中测试它。只有这样,我才会考虑对生产服务器进行更改。

第 3 点。根据 Daboul 评论编辑

【讨论】:

  • 我正准备为 1、2 和 4 发送一个非常相似的答案。对于 3,我会说如果服务器上的运行时是 2.1.X,那么即使开发机器是更新一点,如果它仍然是 2.1.X 它应该是兼容的。相同的主要和次要整数在这里应该意味着兼容性,不是吗?
  • @Daboul 你是对的,它应该可以工作。但是我不会尝试在生产中验证它。我会更新我的答案以更准确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-17
  • 2013-07-07
  • 1970-01-01
  • 2021-05-11
  • 1970-01-01
  • 2020-12-23
  • 2018-11-11
相关资源
最近更新 更多