首页 > 解决方案 > 点网核心控制台应用程序在几天后自动停止工作

问题描述

我在 dot net core 3.1 中创建了一个控制台应用程序,它在运行时更改了现有 json 文件的值。我使用以下命令创建了 exe 文件:

dotnet publish -r win-x86 -c 发布 /p:PublishSingleFile=true /p:PublishTrimmed=true

这是我的应用程序的代码:

 static void Main (string[] args) {
        try {
            // blah blah.. some code to get liscence period
                if (DateTime.Now <= liscencePeriod) {
                    var processor = new JsonDataProcessor ();
                    processor.AmmendJsonData ();
                } 
            }
        } catch (Exception ex) {
            var errorFile = Path.Combine (Environment.CurrentDirectory, "JsonEditorError.txt");
            File.WriteAllText (errorFile, $"{ex.Message}");
        }
        
    }

 //AmmendJsonData code inside JsonDataProcessor class
internal void AmmendJsonData () {
    try {
        var jsonPath = Path.Combine (Environment.CurrentDirectory, "AVLJsonFile.json");
        var jsonData = File.ReadAllText (jsonPath);
        var jsonSchema = JsonConvert.DeserializeObject<Root> (jsonData);
        ChangeJsonContent (jsonSchema);
        var newJson = JsonConvert.SerializeObject (jsonSchema, Formatting.Indented);
        File.WriteAllText (jsonPath, newJson);
    } catch (Exception ex) {
        throw ex;
    }
}

这个exe运行了几天,但之后它停止工作并且json文件中的数据没有改变..我也没有收到任何错误。请让我知道这里出了什么问题。

标签: c#.net-coreconsole-application.net-core-3.1

解决方案


if (DateTime.Now <= liscencePeriod) ... 如果这是假的,它不会做任何事情并且不会给出任何错误。您必须添加带有警告消息的 else 。


推荐阅读