Azure функций / Длительные функции / global.asax - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь переместить веб-приложение, над которым работаю уже несколько лет. Я загружаю список конфигов в global.asax для будущего доступа. Я вижу, что global.asax не имеет эквивалента в долговременных функциях, поэтому я начал смотреть на долговременные функции; но я не уверен, что это лучший способ справиться с нагрузками. В моей текущей среде может быть загружено более 10 000 записей, поэтому загрузка их на лету также не будет работать хорошо.

Это пример того, как выглядит моя конфигурация global.asax; не то, чтобы это действительно имело значение ...:

            if (query.Count() > 0)
            {
                foreach (var item in query)
                {
                    bool bActive = false;
                    bool.TryParse(item.IsActive.ToString(), out bActive);

                    if (item.ProviderName != string.Empty && bActive)
                    {
                        try
                        {
                            bool bEncrypt = false;
                            bool bSign = false;

                            // yes, I know these are bools anyway; this is to catch possible nulls...
                            bool.TryParse(item.Sign.ToString(), out bSign);
                            bool.TryParse(item.Encrypt.ToString(), out bEncrypt);

                            SConfiguration.AddServiceProvider(
                                new ServiceProvider()
                                {
                                    Name = item.PartnerEntity,
                                    NameIDFormat = item.NameFormat,
                                    SignSAMLResponse = bSign,
                                    Sign = bSign,
                                    Encrypt = bEncrypt

                                });
                        }
                   }

Так что этот конфиг должен сохраняться в течение нескольких HTTP-отправок (это SAML).

Есть ли способ предварительно загрузить конфигурацию и сделать ее доступной для всех будущих вызовов функций azure?

1 Ответ

1 голос
/ 15 февраля 2020

Вы можете использовать Внедрение зависимостей с сроком службы Синглтон:

using System;
using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Http;
using Microsoft.Extensions.Logging;

[assembly: FunctionsStartup(typeof(MyNamespace.Startup))]

namespace MyNamespace
{
    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {

            builder.Services.AddSingleton<ILoggerProvider, MyLoggerProvider>();
        }
    }
}

Источник: https://docs.microsoft.com/bs-cyrl-ba/azure/azure-functions/functions-dotnet-dependency-injection

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