Autofac и swagger с версиями API дает исключение - PullRequest
0 голосов
/ 04 июня 2018

Я получаю исключение ниже при запуске моего проекта из Visual Studio, это проект ASP.NET Core.

Кажется, что зависимость регистрируется дважды, следовательно, "System.ArgumentException: элемент стот же ключ уже был добавлен. "

Кажется, что он как-то связан с маршрутами, но я не могу найти способ его отладки.

Похоже, что это также связано с версионированием в Api, потому что, если я удаляю этот код, исключение исчезает.для его отладки.

Autofac.Core.DependencyResolutionException: во время активации определенной регистрации произошла ошибка.Смотрите внутреннее исключение для деталей.Регистрация.Смотрите внутреннее исключение для деталей.Регистрация: Activator = ApiDescriptionGroupCollectionProvider (ReflectionActivator), Службы = [Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionGroupCollectionProvider], Lifetime = Autofac.Core.Lifetime.RootScopeLifetime, совместное использование с ошибкой во время регистрации,Смотрите внутреннее исключение для деталей.Регистрация: Activator = IApiDescriptionProvider [] (DelegateActivator), Services = [System.Collections.Generic.IEnumerable 1[[Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider, Microsoft.AspNetCore.Mvc.Abstractions, Version=2.0.2.0, Culture=neutral, PublicKeyToken=adb9793829ddae60]]], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = None, Ownership = ExternallyOwned An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = DefaultApiDescriptionProvider (ReflectionActivator), Services = [Microsoft.AspNetCore.Mvc.ApiExplorer.IApiDescriptionProvider], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = None, Ownership = OwnedByLifetimeScope An error occurred during the activation of a particular registration. See the inner exception for details. Registration: Activator = DefaultInlineConstraintResolver (ReflectionActivator), Services = [Microsoft.AspNetCore.Routing.IInlineConstraintResolver], Lifetime = Autofac.Core.Lifetime.CurrentScopeLifetime, Sharing = None, Ownership = OwnedByLifetimeScope An exception was thrown while invoking the constructor 'Void .ctor(Microsoft.Extensions.Options.IOptions 1 [Microsoft.AspNetCore.Routing.RouteOptions]) 'для типа' DefaultInlineConstraintResolver '.Элемент с таким же ключом уже был добавлен.(См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.) (См. Внутреннее исключение для деталей.)

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Вы можете исправить это, добавив

<GenerateDocumentationFile>true</GenerateDocumentationFile>

к вашему *.csproj

0 голосов
/ 27 июня 2018

Попробуйте добавить этот код:

services.AddMvcCore().AddVersionedApiExplorer(
                opt =>
                {
                    opt.GroupNameFormat = "'v'VVV";

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