Интегрированный DI через объект класса конструктора преобразуется в ноль в контроллере во время нагрузочного теста - PullRequest
0 голосов
/ 14 мая 2019

В нашем проекте у нас есть DI (встроенная зависимость ядра asp.net) во всех контроллерах с помощью конструктора. Действие одного контроллера вызывает функцию класса, разрешенную с помощью конструктора. У него нет проблем во время обычной загрузки. Только когдавеб-сайт подвергается стресс-тестированию с около 1000 запросов (с шагом 1 секунда), около 5-10% запросов не выполняются, исключение выдается как нулевая ссылка.

Необходимо ли проверять нулевые значения с помощью инжектора конструктора? Эта ссылка предполагает, что объект в конструкторе никогда не будет нулевым, т. Е. Каркас будет выдавать исключение, прежде чем достигнет области контроллера.

Внедрение зависимостей в startup.cs

  services.AddSingleton<IRandomInterface , ImplementedClass>();

Конструктор в контроллере:


 public RandomController(IRandomInterface wgcr,ILogger<RandomController> log)
 {

            this.object = wgcr;
            this._log = log;

 }

Объект-член в контроллере:

 private IRandomInterface object { get; set; }

Действие контроллера:

  [HttpPost("aa")]
  public async Task RandomFunction()
  {

        try
        {  

              if(object ==null)
              {
                    _log.LogInformation("RandomFunction object : null");
              }
              else
                 await object.RandomFunction();



       }
       catch (Exception ex)
       {

                _log.LogError("error in RandomFunction " + ex.Message "StackTrace " + ex.StackTrace);

        }
  }

Не могу найти возможную причину, почемуобъект разрешается как нулевой внутри контроллера без исключения, прежде чем бросать. Если у кого-то есть пониманиеВнедрение встроенных зависимостей в ядро ​​rding asp.net будет высоко оценено.

Заранее спасибо!

...