Повторяющееся имя типа в сборке в Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть .NET Core 1.1 API, и я обрабатываю ошибку в startup.cs, как показано ниже.Я использую Serilog

        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IApplicationLifetime appLifetime, IRequestContext requestContext)
        {      
           loggerFactory.AddSerilog();

           // Ensure any buffered events are sent at shutdown
            appLifetime.ApplicationStopped.Register(Log.CloseAndFlush);                

            var logger = loggerFactory.CreateLogger<Startup>();

            app.UseExceptionHandler(
                options =>
                {
                    options.Run(
                        async context =>
                        {
                            context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                            var ex = context.Features.Get<IExceptionHandlerFeature>();
                            if (ex != null)
                            {
                                var errmsg = "An unexpected error has occured in API.";
                                var logDetails = new
                                {
                                    CorrelationId = requestContext.CorrelationId,
                                    Message = errmsg
                                };
                                logger.LogError(1001, ex.Error, "{@LogDetails}", logDetails);
                                await context.Response.WriteAsync(errmsg).ConfigureAwait(false);
                            }
                        });
                });

            app.UseMvc();

            logger.LogInformation("Application has started in environment {0}", env.EnvironmentName);
        }

В большинстве случаев, когда есть какое-либо исключение, Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware регистрирует исключение, как и ожидалось, однако иногда я вижу следующее исключение в журналах

2018-09-21 18: 36: 01.670 +00: 00 [Ошибка] Произошло необработанное исключение: повторяющееся имя типа в сборке.
System.ArgumentException: повторяющееся имя типа внутриСборка(Строковое полное имя, TypeAttributes attr, Type parent, интерфейсы Type [], модуль ModuleBuilder, PackingSize iPackingSize, Int32 iTypeSize, TypeBuilder enclosingType) в System.Reflection.Emit.ModuleBuilder.DefineType (имя строки, TypeAttributes attr, Typerинтерфейсы) в Microsoft.Extensions.DiagnosticAdapter.Internal.ProxyAssembly.DefineType (строковое имя, атрибуты TypeAttributes, тип baseType, интерфейсы Type [])
в Microsoft.Extensions.DiagnosticAdapter.Internal.ProxyTypeEmitter.GenerateProxyTypeFromProperties (тип sourceType, тип targetType, проверка типа * * *)..DiagnosticAdapter.Internal.Параметры объекта) в Microsoft.Extensions.DiagnosticAdapter.DiagnosticSourceAdapter.System.IObserver> .OnNext (значение KeyValuePair`2) в System.Diagnostics.DiagnosticListener.Write (имя строки, значение объекта) в Microsoft.AspNetCore.Mvc.Internal.Control.d__20.MoveNext ()

--- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в Microsoft.AspNetCore.Builder.RouterMiddleware.d *4.MoveNext конечной трассировки (101) *из предыдущего местоположения, в котором было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача-задача) в Microsoft.AspNetCore.Diagnostics.Exdleware.__ (исключение) ()

Так выглядит Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware свое исключение при самовывозе при ведении журнала

Обновление 1

У меня есть следующие ссылки.Не уверен, какая ссылка вызывает эту проблему.Microsoft.ApplicationInsights.AspNetCore - это 2.0, однако для этого пакета доступны только опции 1.0.* или 2.*.*.Я не вижу в этом пакете 1.1.* доступных

enter image description here

...