.NET Core跟踪不会登录Azure应用程序日志记录

时间:2019-07-11 22:54:44

标签: azure asp.net-core

摘要

我正在尝试对在Azure中创建的Web应用程序服务进行故障排除。该应用程序是一个将React作为前端运行的.Net Core 3.0 Preview 3 Web应用程序。已使用.NET Core 3.0扩展程序设置了Azure Web应用程序。

问题是未记录日志(System.Diagnostics.Trace.TraceInformation / TraceError)。

代码示例

在Startup.cs中,我有以下内容:

#define TRACE
///SOME USINGS...

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlite(
                Configuration.GetConnectionString("DefaultConnection")));

        services.AddDefaultIdentity<ApplicationUser>()
            .AddDefaultUI(UIFramework.Bootstrap4)
            .AddEntityFrameworkStores<ApplicationDbContext>();


        string certPath = Env.ContentRootPath + "/example.pfx";
        X509Certificate2 cert=GetMyX509Certificate(certPath, "RunAzTech123"); //in case we want to get the cert from the registry

        services.AddIdentityServer()
            .AddApiAuthorization<ApplicationUser, ApplicationDbContext>()
            .AddSigningCredential(cert);

        services.AddAuthentication()
            .AddIdentityServerJwt();

        services.AddMvc()
            .AddNewtonsoftJson();

        // In production, the React files will be served from this directory
        services.AddSpaStaticFiles(configuration =>
        {
            configuration.RootPath = "ClientApp/build";
        });
    }

    private X509Certificate2 GetMyX509Certificate(string pfxFilePath, string password,X509KeyStorageFlags sFlags = X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.EphemeralKeySet)
    {
        try
        {
            System.Diagnostics.Trace.TraceInformation($"AZTECH!!! TRYING TO GET THE CERTIFICATE");
            return new X509Certificate2(File.ReadAllBytes(pfxFilePath), password, sFlags);
        }
        catch (PlatformNotSupportedException ex)
        {
            System.Diagnostics.Trace.TraceError($"AZTECH!!! {ex.Message}");
            if(sFlags.HasFlag(X509KeyStorageFlags.EphemeralKeySet))
            {
                return GetMyX509Certificate(pfxFilePath,password,X509KeyStorageFlags.MachineKeySet);
            } else 
            {
                return null;
            }
        }
        catch (Exception ex)
        {
            System.Diagnostics.Trace.TraceError($"AZTECH!!! {ex.Message}");
            return null;
        }
    }

天蓝色设置

已启用应用程序日志记录: enter image description here

当前未以这种方式设置,但我也使用Blob Storage进行了尝试。没有记录日志。

我尝试流式传输日志(日志流),下载日志(终端-> az webapp日志下载--resource-group [groupName] --name [appName]),并使用Kudu({{3} }。但是没有日志出现,而Kudu告诉我该应用已停止:

https://[appName].scm.azurewebsites.net

我没有帐单限制,该应用程序正在运行,而且我不确定自从今天创建该应用程序以来我将如何使用资源配额。

尝试过的解决方案

  • 找不到该文章,但是在Startup.cs的顶部放置了以下内容:#define TRACE。
  • enter image description here
  • This SO post.

已使用的资源

0 个答案:

没有答案