我有一个.NET Core 2.1应用程序,其数据库使用EF Core 2.1。该应用程序已部署在Azure上。在Azure上,我有一个针对应用程序本身的应用程序服务。此外,我有一个Azure SQL服务器和一个供应用程序使用的数据库。
对于部署,我使用VSTS,其中对主服务器的每次提交都会触发VSTS中的构建管道。构建管道包括以下作业:
(请注意,测试作业已被禁用,因为我还有其他问题,但这不属于我的问题)
到目前为止,所有设置都可以使用此设置,并且没有任何问题。但是最近我面临以下问题: 在该应用的先前版本中,我有一些视图模型,例如:
public class OrderCloserModel
{
public long OrderId { get; set; }
[Display(Name = "Cím")]
public string Address { get; set; }
[Display(Name = "Cserék száma")]
public int NumberOfChanges { get; set; }
}
所以没什么特别的。在删除它们(因为不再需要它们)并将所有内容推送到主服务器之后,将调用CI构建,然后部署该应用程序的新版本。然后我检查了该应用程序,它崩溃了。然后,当然我检查了日志记录,那里是否有问题。我发现该应用程序需要删除的视图模型。好吧,起初听起来似乎微不足道,我删除了新版本应用程序使用的某些模型。但是事实是这些视图模型没有在任何地方使用!!!我试图在代码库中搜索它们(VS CTRL + SHIT + F“查找并替换”),但是它们中没有任何用法。只有声明的类。
我试图在主数据库中重新创建这些文件(不使用),再次部署该应用程序,然后该应用程序又可以工作了!首先,我能想到的是以某种方式部署了旧应用程序,而不是新的。但这不是事实,因为新部署的应用程序的功能反映了预期的新行为。
因此,解决方法是在代码库中重新创建缺少的模型,我放置了// TODO注释以供以后删除它们。老实说,这对我来说真的很讨厌,但是我的应用程序可以正常工作,并且可以在生产中使用。
我还能想到的是,也许有一个使用某些旧dll的Azure dll缓存,但是我找不到与此有关的任何相关问题/问题/文章。
您认为问题的根源在哪里?如果需要更多信息,我会尽快将其包括在内,谢谢大家!