Error El recuento de parámetros no coincide

Descripción: 

Utilizando Swagger, se produce el siguiente error al iniciar la aplicación web:

Error de servidor en la aplicación '/'.
El recuento de parámetros no coincide.

Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.Reflection.TargetParameterCountException: El recuento de parámetros no coincide.

Error de código fuente:
Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

Seguimiento de la pila:
[TargetParameterCountException: El recuento de parámetros no coincide.]
System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +11403690
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +54
System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) +21
WebActivatorEx.BaseActivationMethodAttribute.InvokeMethod() +236
WebActivatorEx.ActivationManager.RunActivationMethods(Boolean designerMode) +619
WebActivatorEx.ActivationManager.RunPreStartMethods(Boolean designerMode) +48
WebActivatorEx.ActivationManager.Run() +75

[InvalidOperationException: El método de inicialización Run previo al inicio de la aplicación del tipo WebActivatorEx.ActivationManager produjo una excepción con el siguiente mensaje de error: El recuento de parámetros no coincide..]
System.Web.Compilation.BuildManager.InvokePreStartInitMethodsCore(ICollection`1 methods, Func`1 setHostingEnvironmentCultures) +613
System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods) +141
System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +102
System.Web.Compilation.BuildManager.ExecutePreAppStart() +157
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +531

[HttpException (0x80004005): El método de inicialización Run previo al inicio de la aplicación del tipo WebActivatorEx.ActivationManager produjo una excepción con el siguiente mensaje de error: El recuento de parámetros no coincide..]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9946132
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +90
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +261

 

Resolución: 

Este error se produce porque Swagger se está inicalizando 2 veces.

Normalmente se la clase SwaggerConfig está encabezada por la línea:

[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]

Con esta directiva, Owin realiza el registro de Swagger.

Si además se inicializa en la clase Startup, mediante la llamada al método Register, se estará inicializando 2 veces. Es por ello que se deberá eliminar una de las dos líneas de registro.