【问题标题】:Determine if code changed in C#确定 C# 中的代码是否更改
【发布时间】:2018-02-11 04:38:31
【问题描述】:

我们有一个用 C# 编写的 ASP.NET MVC 网站,当他们发布新代码时,他们通常不会重新启动 Web 服务器。这可能会导致问题,因为某些代码更改可能假定 App_Start 中调用的新代码已触发,或者静态变量中的某些查找值可能相对于代码更改已过时。

我想解决这个问题的方法是将静态变量设置为 AssemblyName.Version。然后在任何 Web 请求中,我将针对静态变量检查 AssemblyName.Version 的代码,如果它不同,它将更新该静态变量并运行某些代码以刷新缓存并执行通常由 App_Start 运行的某些任务。

我想知道是否有更好的方法来处理这个问题。当然这是一种常见的情况,所以我很好奇其他人是如何处理这种情况的。

【问题讨论】:

  • 真的很难理解你在问什么。
  • 我会告诉 IT 部门(或部署团队)齐心协力。
  • We have an ASP.NET MVC website in C#, and when they publish new code, they don't usually restart the web server. 那是你的问题。处理那个问题而不是症状。您需要一个相对自动化的部署管道,而不是您现在拥有的(这听起来基本上是“手动文件复制”)。
  • 好吧,正如之前评论的那样,web.config 更改将重新启动您的应用程序So do changes in assemblies in your /bin,我假设就是你所说的“发布”

标签: c# asp.net deployment publishing


【解决方案1】:

web.config 文件中放入版本号或唯一的东西。这将触发 ASP.NET 运行时重新启动应用程序。你不需要对它做任何事情,只要它存在并且与之前的web.config不同,它就可以完成这项工作。

但我仍然认为你应该告诉你的部署让他们一起行动;你不能照看他们。如果他们的工作是部署,他们应该知道如何去做。健忘不是个好理由。

【讨论】:

    猜你喜欢
    • 2012-06-07
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多