程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从 appsettings.json 访问 docker linux 的文件路径大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决从 appsetTings.json 访问 docker linux 的文件路径?

开发过程中遇到从 appsetTings.json 访问 docker linux 的文件路径的问题如何解决?下面主要结合日常开发的经验,给出你关于从 appsetTings.json 访问 docker linux 的文件路径的解决方法建议,希望对你解决从 appsetTings.json 访问 docker linux 的文件路径有所启发或帮助;

在我的 asp .net core web 应用程序中,我从 appsetTings.Json 访问一些文件路径。并在那里创建一个包含一些内容的新文件。以下是我的appsetTings.Json

{
  "root_privatekeyLOCATIOn": "C:\\CARepository\\Root\\rootprivatekey.pem","root_publickeyLOCATIOn": "C:\\CARepository\\Root\\rootpublickey.pem","crl_LOCATIOn": "C:\\CARepository\\CRL\\Crl.crl","Logging": {
    "LogLevel": {
      "Default": "information","Microsoft": "Warning","Microsoft.HosTing.lifetime": "information"
    }
  },"AllowedHosts": "*"
}

这适用于 windows,因为它创建目录 CARepositoryRoot 和文件 rootprivatekey.pem。以下是创建这些的代码:

String pathFromConfig= Configuration["root_privatekeyLOCATIOn"];
String privateKey = textWriter.ToString();
//if Directory not exist then create
System.IO.fileInfo file = new System.IO.fileInfo(pathFromConfig);
file.Directory.Create(); // If the directory already exists,this method does nothing.
    
using StreamWriter f = new StreamWriter(pathFromConfig);
f.Write(privateKey); 

现在,我需要在 linux 服务器上运行此应用程序。因此,我从 VS for linux 向应用程序添加了 docker 支持,创建了一个 docker 映像并使用该映像运行 docker 容器。为此,我更改了 appsetTings.Json,因为 linux 没有 C:\\ :

{
  "root_privatekeyLOCATIOn": "~/CARepository/Root/rootprivatekey.pem","root_publickeyLOCATIOn": "~/CARepository/Root/rootpublickey.pem","crl_LOCATIOn": "~/CARepository/CRL/Crl.crl","AllowedHosts": "*"
}

调用应用程序 API 在给定路径上创建文件,它返回输出但不创建文件 ~/CARepository/Root/rootprivatekey.pem,我也无法在任何地方找到 CARepository。似乎它不会创建此路径。我检查了 docker 容器 Cli。有谁能够帮我? linux docker 是否还有其他文件路径格式,或者我需要更改 C# 代码吗?

解决方法

不要使用 ~ 指定用户的主文件夹,使用 Environment.GetFolderPath(Environment.SpecialFolder.UserProfilE); 或选择其他 SpecialFolder 枚举之一。

https://docs.microsoft.com/en-us/dotnet/api/system.environment.getfolderpath?view=net-5.0

大佬总结

以上是大佬教程为你收集整理的从 appsettings.json 访问 docker linux 的文件路径全部内容,希望文章能够帮你解决从 appsettings.json 访问 docker linux 的文件路径所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。