gpt4 book ai didi

c# - Azure Web 应用上的 ASP.NET Core,添加 Azure Web 应用诊断会在启动时引发 FileNotFoundException

转载 作者:行者123 更新时间:2023-12-03 02:44:59 27 4
gpt4 key购买 nike

我们将 ASP.NET Core 3.0 Web 应用程序部署到 Azure Web Apps。为了获取日志消息,我们要使用 Azure Web Apps diagnostics 。我们在program.cs中添加日志记录提供程序:

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging => logging.AddAzureWebAppDiagnostics())
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});

但是,在应用程序启动时,FileNotFoundException 会记录到 stdout(有关详细信息和堆栈跟踪,请参见下文),并且应用程序无法启动(状态代码 500.30)。

我们已经采取了以下步骤来查找原因,但到目前为止,我们还没有成功:

  • 我们已经使用了 Kudu 并断言该目录存在。目录中的settings.json 文件模仿了我们在日志配置中设置的设置。
  • 此外,我们在program.cs中添加了对Directory.Exists的调用,以验证该目录是否存在。这也返回 true。
  • 我们已在同一应用服务计划中使用相同的设置重新创建了同名的 Azure Web 应用;应用程序无法启动。
  • 在新创建的 ASP.NET Core 3.0 项目中,我们成功设置了日志记录,即使我们反射(reflect)了更大解决方案的一些细节;我们验证了以下特征不会阻止测试应用程序成功记录:
    • 从包运行最初并未设置(我们直接从 Visual Studio 部署测试应用),但我们创建了一个构建过程,用于部署带有从包运行的包> 设置。因此,一般的构建和发布过程是相同的。
    • 我们从较大的项目复制了 web.config(已进行调整以将日志消息保存到标准输出)
    • 我们在项目之间复制了program.cs的内容,以便创建网络主机的代码是相同的。

有谁知道此行为的原因或我们可以用来获取更多详细信息的其他一些步骤?

<小时/>

异常详细信息

Unhandled exception. System.IO.FileNotFoundException: Error reading the D:\home\site\diagnostics\ directory.

at System.IO.FileSystemWatcher.StartRaisingEvents()

at System.IO.FileSystemWatcher.StartRaisingEventsIfNotDisposed()

at System.IO.FileSystemWatcher.set_EnableRaisingEvents(Boolean value)

at Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher.TryEnableFileSystemWatcher()

at Microsoft.Extensions.FileProviders.Physical.PhysicalFilesWatcher.CreateFileChangeToken(String filter)

at Microsoft.Extensions.FileProviders.PhysicalFileProvider.Watch(String filter)

at Microsoft.Extensions.Configuration.FileConfigurationProvider.<.ctor>b__1_0()

at Microsoft.Extensions.Primitives.ChangeToken.ChangeTokenRegistration1..ctor(Func1 changeTokenProducer, Action`1 changeTokenConsumer, TState state)

at Microsoft.Extensions.Primitives.ChangeToken.OnChange(Func`1 changeTokenProducer, Action changeTokenConsumer)

at Microsoft.Extensions.Configuration.FileConfigurationProvider..ctor(FileConfigurationSource source)

at Microsoft.Extensions.Configuration.Json.JsonConfigurationSource.Build(IConfigurationBuilder builder)

at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()

at Microsoft.Extensions.Logging.AzureAppServices.SiteConfigurationProvider.GetAzureLoggingConfiguration(IWebAppContext context)

at Microsoft.Extensions.Logging.AzureAppServicesLoggerFactoryExtensions.AddAzureWebAppDiagnostics(ILoggingBuilder builder, IWebAppContext context)

at Microsoft.Extensions.Logging.AzureAppServicesLoggerFactoryExtensions.AddAzureWebAppDiagnostics(ILoggingBuilder builder)

at sevacation.Program.<>c.b__1_0(ILoggingBuilder logging) in D:\a\1\s\sevacation\Program.cs:line 22

at Microsoft.Extensions.Hosting.HostingHostBuilderExtensions.<>c__DisplayClass5_0.b__1(ILoggingBuilder builder)

at Microsoft.Extensions.DependencyInjection.LoggingServiceCollectionExtensions.AddLogging(IServiceCollection services, Action`1 configure)

at Microsoft.Extensions.Hosting.HostingHostBuilderExtensions.<>c__DisplayClass5_0.b__0(HostBuilderContext context, IServiceCollection collection)

at Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider()

at Microsoft.Extensions.Hosting.HostBuilder.Build()

at sevacation.Program.Main(String[] args) in D:\a\1\s\sevacation\Program.cs:line 17

最佳答案

当前似乎有一个issue使用 .zip 部署(截至 2019 年 12 月)

尝试使用不同的部署方法,例如 WebDeploy、Git 等

关于c# - Azure Web 应用上的 ASP.NET Core,添加 Azure Web 应用诊断会在启动时引发 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59268272/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com