Serilog WriteTo.RollingFile在我发布到Azure时似乎创建了500个错误代码

Serilog WriteTo.RollingFile在我发布到Azure时似乎创建了500个错误代码,azure,asp.net-web-api,serilog,Azure,Asp.net Web Api,Serilog,我在Azure上发布了一个基本的asp.net核心应用程序,尝试使用Serilog,但发布后它给了我500个错误。当我注释掉RollingFile Sink时,它会毫无错误地发布。为什么会发生这种情况?在我的本地机器上也可以正常工作 public Startup(IHostingEnvironment appEnv) { Log.Logger = new LoggerConfiguration() .MinimumLevel.Inf

我在Azure上发布了一个基本的asp.net核心应用程序,尝试使用Serilog,但发布后它给了我500个错误。当我注释掉RollingFile Sink时,它会毫无错误地发布。为什么会发生这种情况?在我的本地机器上也可以正常工作

      public Startup(IHostingEnvironment appEnv)
      {
        Log.Logger = new LoggerConfiguration()
            .MinimumLevel.Information()
          //.WriteTo.RollingFile(Path.Combine(appEnv.WebRootPath, "log-{Date}.txt"), retainedFileCountLimit: 5)              
            .CreateLogger();
      }

env.WebRootPath
可能为
null
。在这种情况下,
Path.Combine()
将(AFAIK)抛出一个
ArgumentNullException
,这将解释500个错误。

是的,就是这样,谢谢!我将其更改为Directory.GetCurrentDirectory()而不是WebRootPath%home%\LogFiles通常是您希望在应用程序服务上插入日志的位置。当不在Azure中时,您可以尝试绕过它并默认为Directory.CurrentDirectory(),或者更好地使用应用程序设置并检查其值(true=在应用程序服务上运行,或者类似的东西)。