Трассировки ядра .NET не будут регистрироваться Ведение журнала приложений Azure - PullRequest
0 голосов
/ 12 июля 2019

Резюме

Я пытаюсь устранить неполадки службы веб-приложений, созданной в Azure. Это веб-приложение .Net Core 3.0 Preview 3, в котором в качестве внешнего интерфейса используется React. Веб-приложение Azure было настроено с расширениями для .NET Core 3.0.

Проблема в том, что журналы (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;
        }
    }

Настройка Azure

Ведение журнала приложений включено: enter image description here

В настоящее время этот способ не настроен, но я также пробовал это с хранилищем BLOB-объектов Журналы не были записаны.

Я попытался выполнить потоковую передачу журналов (Log Stream), загрузить журналы (Terminal -> az logapp download загрузить --resource-group [groupName] --name [appName]) и использовать Kudu (https://[appName].scm.azurewebsites.net). Но журналы не появляются, и Куду говорит, что приложение остановлено:

enter image description here

У меня нет предела счетов, приложение запущено, и я не уверен, как бы я соответствовал квоте ресурса, так как приложение было создано сегодня.

Решенные решения

Используемые ресурсы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...