C# 应用程序部署后,在StartUp.cs中只运行一次函数
我正在开发ASP.NET core 2.2 web应用程序。我希望每次在Startup.cs文件中部署应用程序后只运行一次函数 此函数会减慢应用程序的速度,因为它会在应用程序启动时执行一些繁重的检查。我只想在每次部署应用程序时运行一次 这是密码C# 应用程序部署后,在StartUp.cs中只运行一次函数,c#,iis,.net-core,asp.net-core-mvc,asp.net-core-2.1,C#,Iis,.net Core,Asp.net Core Mvc,Asp.net Core 2.1,我正在开发ASP.NET core 2.2 web应用程序。我希望每次在Startup.cs文件中部署应用程序后只运行一次函数 此函数会减慢应用程序的速度,因为它会在应用程序启动时执行一些繁重的检查。我只想在每次部署应用程序时运行一次 这是密码 SynapseCore.Services.Plugins.SiteContentDiscovery iCont = new SiteContentDiscovery(); _logger.LogInformation("Star
SynapseCore.Services.Plugins.SiteContentDiscovery iCont = new SiteContentDiscovery();
_logger.LogInformation("Startup - Complete : SiteContentDiscovery", new object[0]);
SynapseCore.Shared.GlobalData.pluginList = pluginsInfoList;
_logger.LogInformation("Startup - Complete : pluginList", new object[0]);
iCont.SetPluginInfo(pluginsInfoList);
_logger.LogInformation("Startup - Complete : SetPluginInfo", new object[0]);
//The following function 'CheckDatabaseIntegrity' is to be run once after deployment.
iCont.CheckDatabaseIntegrity();
_logger.LogInformation("Startup - Complete : CheckDatabaseIntegrity", new object[0]);
iCont.CheckPluginStatus();
_logger.LogInformation("Startup - Complete : CheckPluginStatus", new object[0]);
PluginSiteComposedData composedData = iCont.CompileSiteDataList();
我已经调查过了
Environment.GetEnvironmentVariables()
但似乎没有我想要的属性
我的问题是,如何通过代码检测应用程序在IIS上部署后是否第一次运行?您只需存储并检查程序集版本即可。如果它增加了,您可以假设您部署了一个新版本
但是,每次要部署新版本时,您还必须在项目属性中增加它。您可以发布相关的代码吗?:)@派对戒指。。我已经添加了代码。谢谢。把文件写到你的网站目录怎么样?在第一次运行时写入文件,然后在每次运行时检查文件是否存在,并且仅在文件不存在时执行该操作。由于它实际上不是您项目的一部分,因此对于新发布的应用程序,它将不存在。显然,您希望从源代码管理中忽略它,这样您就不会意外地提交它了。@ChrisPratt,非常感谢,伙计,这看起来很有希望。我会试一试并给你反馈。再次感谢克里斯。它工作得很好。我不确定我是否能把你的评论标记为正确答案。如果您想让我标记,请告诉我如何标记。谢谢