2016-10-03 70 views
2

我得到的參數計數不匹配,除非在Startup.cs代碼完成執行後。如果在啓動類的退出時失敗。但我無法弄清楚代碼的下一步。它不去我的控制器。啓動時參數計數不匹配

public partial class Startup 
    { 
     public void Configuration(IAppBuilder app) 
     { 
      var container = SimpleInjectorInitializer.Initialize(app); 
      ConfigureAuth(app, container); 
     } 
    } 

Startup.Auth

public partial class Startup 
    { 
     // For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864 
     public void ConfigureAuth(IAppBuilder app, Container container) 
     { 
      app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create); 
      app.CreatePerOwinContext(() => container.GetInstance<ApplicationUserManager>()); 
      app.UseCookieAuthentication(new CookieAuthenticationOptions 
      { 
       AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
       LoginPath = new PathString("/Account/Login"), 
       Provider = new CookieAuthenticationProvider 
       { 
        OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
         validateInterval: TimeSpan.FromMinutes(30), 
         regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)) 
       } 
      }); 
      app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 
      app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5)); 
      app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie); 
     } 
    } 

堆棧跟蹤:

[TargetParameterCountException: Parameter count mismatch.] 
    System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +11414282 
    System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +54 
    System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) +21 
    WebActivator.BaseActivationMethodAttribute.InvokeMethod() +236 
    WebActivator.ActivationManager.RunActivationMethods() +370 
    WebActivator.ActivationManager.RunPostStartMethods() +41 
    WebActivator.StartMethodCallingModule.Init(HttpApplication context) +125 
    System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +534 
    System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +172 
    System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +352 
    System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296 

[HttpException (0x80004005): Parameter count mismatch.] 
    System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9947380 
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101 
    System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +261 

我剛剛完成我的登記管理ASP.NET.Identity,然後我收到此錯誤。

任何人都知道爲什麼?

+0

請出示您在應用程序中使用'PostApplicationStartMethodAttribute's的定義。 – Steven

回答

3

在簡單的注射器取出WebActivator大會

namespace WebApplication1.App_Start 
{ 
    using System.Reflection; 
    using System.Web.Mvc; 

    using SimpleInjector; 
    using SimpleInjector.Extensions; 
    using SimpleInjector.Integration.Web; 
    using SimpleInjector.Integration.Web.Mvc; 
    using Owin; 
    using Models; 
    using Microsoft.AspNet.Identity; 
    using Microsoft.AspNet.Identity.EntityFramework; 
    using Microsoft.Owin.Security.DataProtection; 
    using Microsoft.AspNet.Identity.Owin; 
    using Microsoft.Owin.Security; 
    using SimpleInjector.Advanced; 
    using Microsoft.Owin; 
    using System.Web; 
    using System.Collections.Generic; 

    public static class SimpleInjectorInitializer 
    { 
    } 

它想看起來像上面的代碼

+0

歡呼的小夥子,很好的答案 – Andrew

2

在您的噴射器的發動機罩它被稱爲

System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) 

兩個參數,第一個是在其上調用方法的目標實例和第二個是的方法參數陣列。

我們不知道您的上下文,但問題來自方法參數數組。這種不匹配發生在那裏。有參數計數不匹配。

使用調試,並根據您的上下文查看發生這種情況並修復它。

+0

我發現WebActivator源代碼被調用導致了這個問題。它需要被刪除 –

+0

@AndrewKilburn ok根據你的參數正確調用它,或者只是刪除它。 – mybirthname

+0

我刪除了它,因爲我實際上錯過了要求在教程中刪除它的部分,因爲它不需要 –

相關問題