пользовательский вызов задачи промежуточного программного обеспечения owin (контекст IOwinContext, Fun c<Task> next) вызывается дважды - PullRequest
0 голосов
/ 12 июля 2020

Я использую MVC5 и Microsoft.Owin "version =" 4.1.0 "в моем приложении ASP. NET. В моем классе startup.cs были некоторые исключения, и я использовал специальное промежуточное ПО owin для регистрации исключения, использующие Nlog, когда есть какие-либо исключения. Все работает ожидаемо, но вызов задачи (контекст IOwinContext, Fun c далее) вызывается дважды, а журналы записываются дважды. Что я делаю неправильно, любая помощь будет отличной `

 public class LoggingMiddleware 
{
    private static readonly Logger Logger = LogManager.GetLogger("r1");
    private readonly Exception _exception; 
}
    public LoggingMiddleware(Exception exception)
    {
        _exception = exception;
    }
    public  Task Invoke(IOwinContext context, Func<Task> next)
    {
        Logger.Error(_exception);
         return context.Response.WriteAsync("error");
    }

stratup.cs ->

             try
            {
                throw new Exception("hi");
            }    
            catch (Exception ex)
            {
                app.Use(new LoggingMiddleware(ex).Invoke);
                
            }
...