2016-10-03 2 views
2

Startup.cs 코드 실행이 끝난 직후를 제외하고 매개 변수 개수가 일치하지 않습니다. Startup 클래스가 종료 될 경우 실패합니다. 그러나 코드가 다음에 어디로 갈지 알 수는 없습니다. 그것은 내 컨트롤러로 이동하지 않습니다.시작시 매개 변수 개수가 일치하지 않습니다.

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의 정의를 보여주십시오처럼 싶어

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 { } 

를 제거합니다. – Steven

답변

3

는 WebActivator 총회 그것은 위의 코드

+0

환호하는 젊은이, 좋은 대답 – Andrew

2

는 제 메소드가 호출되는 대상 인스턴스 인 및 제 메소드 인자 배열되고, 두 개의 인수

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

불린다.

컨텍스트를 알 수 없지만 메서드 인수 배열에서 문제가 발생합니다. 불일치가 거기에서 일어나고 있습니다. 매개 변수 개수가 일치하지 않습니다.

디버그를 사용하고 컨텍스트에 따라 디버그가 발생하는 곳을 확인하고 수정하십시오. 간단한 인젝터에서

+0

WebActivator 소스 코드가 호출되어이 문제를 일으켰습니다. 제거해야합니다 –

+0

@AndrewKilburn ok 매개 변수에 따라 올바르게 호출하거나 제거하십시오. – mybirthname

+0

실제로 필자가 튜토리얼에서 제거하지 말라고 말한 부분을 놓친 것처럼 제거했습니다. –

관련 문제