c# - 点网核心控制台应用程序在几天后自动停止工作
问题描述
我在 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文件中的数据没有改变..我也没有收到任何错误。请让我知道这里出了什么问题。
解决方案
if (DateTime.Now <= liscencePeriod) ... 如果这是假的,它不会做任何事情并且不会给出任何错误。您必须添加带有警告消息的 else 。
推荐阅读
- javascript - 有什么很棒的方法可以从数组中留下每个单独的元素吗?
- angularjs - 根据 ngIf 更改背景颜色
- javascript - 当onchange处理程序使用javascript检测长度为4时如何在状态文本框中自动添加连字符
- python - 如何在 Django 的数据表中创建过滤器列?
- reactjs - 如何在平面列表中的本地反应中对图像设置 onError
- reactjs - 使用 testing-library 和 jest 的 React 组件抛出的测试错误
- unix - if [['hostname'='bob']] 在 UNIX 中这条语句的目的是什么
- node.js - 如何使用 NodeJS 更新 AWS Secrets Manager
- javascript - JavaScript 函数如何在 php 循环中工作?
- wikidata - 为什么在更新 wikibase 时出现“无效的 snak 数据”?