我正在尝试将swagger集成到ASP NET Core 3.0
项目中,并且它在ConfigureServices
方法中抛出异常:
我正在使用Swashbuckle.AspNetCore
4.0.1。
public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1",new Swashbuckle.AspNetCore.Swagger.Info
{
Version = "v1",Title = " API",Description="API for the Server",});
});
}
例外
System.aggregateexception
HResult=0x80131500
Message=Some services are not able to be constructed (Error while validating the service descriptor 'ServiceType: Swashbuckle.AspNetCore.Swagger.ISwaggerProvider Lifetime: Transient ImplementationType: Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator': Failed to compare two elements in the array.) (Error while validating the service descriptor 'ServiceType: Swashbuckle.AspNetCore.SwaggerGen.ISchemaRegistryFactory Lifetime: Transient ImplementationType: Swashbuckle.AspNetCore.SwaggerGen.SchemaRegistryFactory': Failed to compare two elements in the array.)
Source=microsoft.Extensions.DependencyInjection
StackTrace:
at microsoft.Extensions.DependencyInjection.ServiceProvider..ctor(IEnumerable`1 serviceDescriptors,ServiceProviderOptions options)
at microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(IServiceCollection services,ServiceProviderOptions options)
at microsoft.Extensions.DependencyInjection.DefaultServiceProviderFactory.CreateServiceProvider(IServiceCollection containerBuilder)
at microsoft.Extensions.Hosting.Internal.ServiceFactoryAdapter`1.CreateServiceProvider(Object containerBuilder)
at microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider()
at microsoft.Extensions.Hosting.HostBuilder.Build()
at SXS.Server.Program.Main(String[] args) in C:\Work\SXS\SXS\Core\Server\SXS.Server\Program.cs:line 32
Inner Exception 1:
InvalidOperationException: Error while validating the service descriptor 'ServiceType: Swashbuckle.AspNetCore.Swagger.ISwaggerProvider Lifetime: Transient ImplementationType: Swashbuckle.AspNetCore.SwaggerGen.SwaggerGenerator': Failed to compare two elements in the array.
Inner Exception 2:
InvalidOperationException: Failed to compare two elements in the array.
Inner Exception 3:
TypeloadException: Could not load type 'microsoft.AspNetCore.Mvc.MvcJsonOptions' from assembly 'microsoft.AspNetCore.Mvc.Formatters.Json,Version=3.0.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60'.
PS 我遵循了这个guide,唯一的区别是,当他使用OpenApiInfo
对象时,我没有可用的重载,因此正在使用{{ 1}}。