我已将Web应用从.NET 5升级到.NET 6,但在部署到Azure后,找不到文件夹wwwroot
。异常显示了我的开发文件夹的路径。在.NET 5中,这是动态处理的,并使用了当前文件夹。我现在已尝试了我能找到的所有变体,但没有结果,所以现在是时候问这个问题了:我错过了什么,如何修复它?
例外情况
系统.IO.目录未找到异常:C:\vsts\rs_source\湖泊生态系统\湖泊生态系统Api\湖泊生态系统Api\wwwroot
位于Microsoft.扩展.文件提供程序.物理文件提供程序.. ctor(字符串根目录,排除筛选器筛选器)
位于Microsoft.扩展.文件提供程序.物理文件提供程序.. ctor(字符串根)位于Microsoft. AspNetCore.主机.静态Web资产.静态Web资产加载程序。c.b__1_0(字符串内容根目录),位于Microsoft.AspNetCore.StaticWebAssets.ManifestStaticWebAssetFileProvider .. ctor(静态Web资产清单清单,函数文件提供程序工厂).aspNetCore.宿主.静态Web资产.静态Web资产加载程序.使用静态Web资产核心(IWeb主机环境,流清单)。AspNetCore。托管。静态Web资产。静态Web资产加载程序。使用Microsoft。AspNetCore。Web主机中的静态Web资产(IWeb主机环境,IConfiguration配置)。c.b__9_0(Web主机构建器上下文ctx,IConfigurationBuilder cb)。AspNetCore.Hosting.GenericWeb主机构建器。〈〉c__DisplayClass9_0.b__0(主机构建器上下文,IConfigurationBuilder构建器)。扩展。主机。主机构建器。构建应用程序配置()。扩展。主机。主机构建器。构建应用程序配置()。程序。主(字符串[]参数),位于C:\vsts\rs_source\湖米德尔山特林ing\湖米德尔山特林ing Api\湖米德尔山特林ing Api\Program.cs:第17行
程序.cs
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args).ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseContentRoot(Directory.GetCurrentDirectory());
webBuilder.ConfigureAppConfiguration((hostingContext, config) =>
{
config.SetBasePath(Directory.GetCurrentDirectory());
config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
config.AddEnvironmentVariables();
config.Build();
});
webBuilder.UseStartup<Startup>();
});
}
1条答案
按热度按时间eyh26e7m1#
问题是.net 6正在创建一个新文件“.staticwebassets.runtime.json”,用于处理Visual Studio中的事务。此文件被复制到Azure,这是不好的。可以在此处找到一个好的答案:
[IIS ASP.NET 6 startup throws System.IO.DirectoryNotFoundException: D:\agent_work\38\s\IdentityServer\wwwroot](https://stackoverflow.com/questions/71055418/iis-asp-net-6-startup-throws-system-io-directorynotfoundexception-d-agent-wor)
问候卡尔-约翰