WebActivatorEx.ActivationManager类型出错引发异常....参数计数不匹配

RDs*_*RDs 4 asp.net webactivator asp.net-web-api owin

安装Microsoft.Owin后,我收到此错误.*.目标.Net框架:4.5.2.Web Activator:2.2.0我在另一个项目中有相同的设置,似乎工作正常.请帮我调试或解决这个问题.

我到目前为止做了什么: -

  1. 更新了所有Nuget包
  2. 删除了obj文件夹内容
  3. 跑aspnet_compiler.exe -p C:\ source\Application\MyAPI -v something -errorstack.它确实给出了相同的错误,但在我添加WebMatrix.data后停止了.

完整错误详情: -

参数计数不匹配.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

Stack Trace: 
[TargetParameterCountException: Parameter count mismatch.]
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
WebActivatorEx.BaseActivationMethodAttribute.InvokeMethod() +73
WebActivatorEx.ActivationManager.RunActivationMethods(Boolean designerMode) 
+637
WebActivatorEx.ActivationManager.Run() +103

[InvalidOperationException: The pre-application start initialization method 
Run on type    WebActivatorEx.ActivationManager threw an exception with the 
following error message: Parameter count    mismatch..]
Run Code Online (Sandbox Code Playgroud)

这是package.config: -

  <package id="EntityFramework" version="6.1.3" targetFramework="net452" />
  <package id="log4net" version="2.0.8" targetFramework="net452" />
  <package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.Owin" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebHelpers" version="3.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebPages.Data" version="3.2.3" targetFramework="net452" />
  <package id="Microsoft.AspNet.WebPages.WebData" version="3.2.3" targetFramework="net452" />
  <package id="Microsoft.Owin" version="3.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Host.SystemWeb" version="3.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Security" version="3.1.0" targetFramework="net452" />
  <package id="Microsoft.Owin.Security.OAuth" version="3.1.0" targetFramework="net452" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net452" />
  <package id="Newtonsoft.Json" version="10.0.2" targetFramework="net452" />
  <package id="Owin" version="1.0" targetFramework="net452" />
  <package id="Swashbuckle" version="5.5.3" targetFramework="net452" />
  <package id="Swashbuckle.Core" version="5.5.3" targetFramework="net452" />
  <package id="WebActivatorEx" version="2.0" targetFramework="net452" />
Run Code Online (Sandbox Code Playgroud)

RDs*_*RDs 8

我发现了这个问题.还有另一个引起问题的swagger PreApplicationStartMethod.删除该行后,事情开始起作用了.

  • @k.explorer 不知道您是否仍然遇到问题,但在 `SwaggerConfig.cs` 的顶部是一行 `[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), "Register")]` 可以触发这个. 这就是这个答案中提到的内容。 (3认同)