首页 新闻 会员 周边

请教.netcore 3.1升级.net6存在的问题

0
悬赏园豆:50 [已解决问题] 解决于 2022-06-02 10:02

升级.net6后本地启动成功,但是docker pod中启动成功后又立马失败了,抛出的错误是

{
"ClassName":"System.IO.DirectoryNotFoundException",
"Message":"Manage/wwwroot/",
"Data":null,
"InnerException":null,
"HelpURL":null,
"StackTraceString":" at Microsoft.Extensions.FileProviders.PhysicalFileProvider..ctor(String root, ExclusionFilters filters)\n at Microsoft.Extensions.FileProviders.PhysicalFileProvider..ctor(String root)\n at Microsoft.AspNetCore.Hosting.StaticWebAssets.StaticWebAssetsLoader.<>c.<UseStaticWebAssetsCore>b__1_0(String contentRoot)\n at Microsoft.AspNetCore.StaticWebAssets.ManifestStaticWebAssetFileProvider..ctor(StaticWebAssetManifest manifest, Func`2 fileProviderFactory)\n at Microsoft.AspNetCore.Hosting.StaticWebAssets.StaticWebAssetsLoader.UseStaticWebAssetsCore(IWebHostEnvironment environment, Stream manifest)\n at Microsoft.AspNetCore.Hosting.StaticWebAssets.StaticWebAssetsLoader.UseStaticWebAssets(IWebHostEnvironment environment, IConfiguration configuration)\n at Microsoft.AspNetCore.WebHost.<>c.<ConfigureWebDefaults>b__9_0(WebHostBuilderContext ctx, IConfigurationBuilder cb)\n at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass9_0.<ConfigureAppConfiguration>b__0(HostBuilderContext context, IConfigurationBuilder builder)\n at Microsoft.Extensions.Hosting.HostBuilder.BuildAppConfiguration()\n at Microsoft.Extensions.Hosting.HostBuilder.Build()\n at Manage.Program.BuildWebHost(String[] args) in Manage/Program.cs:line 133\n at Manage.Program.Main(String[] args) in Manage/Program.cs:line 46",
"RemoteStackTraceString":null,
"RemoteStackIndex":0,
"ExceptionMethod":null,
"HResult":-2147024893,
"Source":"Microsoft.Extensions.FileProviders.Physical",
"WatsonBuckets":null
}

劣人的小板凳的主页 劣人的小板凳 | 初学一级 | 园豆:21
提问于:2022-05-31 17:10
< >
分享
最佳答案
0

建议进容器看一下对应的路径是否存在

docker run -it image-name /bin/bash
ls Manage/wwwroot/
收获园豆:50
dudu | 高人七级 |园豆:30994 | 2022-05-31 17:15

您好,没有这个路径,是代码问题吗

劣人的小板凳 | 园豆:21 (初学一级) | 2022-05-31 17:46

@劣人的小板凳: 可能是 dotnet publish 时没有复制这个文件夹

dudu | 园豆:30994 (高人七级) | 2022-05-31 20:03

@dudu: 多谢了,我试试

劣人的小板凳 | 园豆:21 (初学一级) | 2022-05-31 22:38

@dudu: 构建后的image里包含wwwroot文件,还是报这个错误,请问还有其他原因会导致么

劣人的小板凳 | 园豆:21 (初学一级) | 2022-06-01 10:05

@劣人的小板凳:

  • 建议贴出 Program.cs 对应部分的代码
  • 建议提供镜像中 wwwroot 的完整路径
dudu | 园豆:30994 (高人七级) | 2022-06-01 10:34

@dudu:

这是对应的部分代码和wwwroot的路径~

劣人的小板凳 | 园豆:21 (初学一级) | 2022-06-01 11:21

@劣人的小板凳: 从截图看,wwwroot 正确的路径是 wwwroot/ ,不是 Manage/wwwroot/

dudu | 园豆:30994 (高人七级) | 2022-06-01 12:14

@劣人的小板凳: 应该是 Host.CreateDefaultBuilder(args) 之前的代码引起的,那些用不到,可以删除

dudu | 园豆:30994 (高人七级) | 2022-06-01 12:16

@劣人的小板凳: 就是 IConfiguration configuration = builder.Build() 引起的

dudu | 园豆:30994 (高人七级) | 2022-06-01 12:17

@dudu: 文件 配置加载咋会跑到manage/wwwroot里去了,我排查下,谢谢

劣人的小板凳 | 园豆:21 (初学一级) | 2022-06-01 12:21

@劣人的小板凳: 应该是 SetBasePath 引起的, 这个配置根本没用到

dudu | 园豆:30994 (高人七级) | 2022-06-01 12:32

@dudu: 去除了以后报错存在,暂时看源码还没看懂报错的原因,最终报错的地方我觉得
应该是初始化FileProvider内容路径报错了

劣人的小板凳 | 园豆:21 (初学一级) | 2022-06-01 15:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册