【发布时间】:2023-01-11 05:41:00
【问题描述】:
我在 docker (Ubuntu 22.04) 中使用 .net 核心应用程序
运行时出现以下错误: 未处理的异常。 System.IndexOutOfRangeException:索引超出数组范围。 在 WebServer.FileMethods.ReadConfig() 在 /src/WebServer/WorkClasses/FileMethods.cs:line 32
此错误指向以下代码: 第 32 行
if (!Directory.Exists($"{path}Config"))
{
Directory.CreateDirectory($"{path}Config");
}
我试着点("/app/Config") instead of ($"{path}Config")
结果是一样的
在重新安装 docker 之前一切正常 Directory.GetCurrentDirectory() 方法指向“/app”路径 所以路径是正确的
【问题讨论】:
-
请显示完整的堆栈跟踪,最好是minimal reproducible example?在那个地方得到那个错误似乎很奇怪,除非
path是一个在评估时抛出异常的属性......(我认为堆栈跟踪可能在行号方面不正确。A完整的示例将使它更容易提供帮助。) -
考虑使用
Path.Combine而不是简单的连接(这不是您问题的答案) -
你附近有伐木场吗?我记得一个类似的问题是由于日志记录 api 的并发问题。