2016-10-03 18 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

は、最初のメソッドが呼び出されたターゲット・インスタンスであり、かつ第二メソッドの引数の配列である、2つの引数を指定して

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

と呼ばれています。

コンテキストはわかりませんが、問題はメソッドの引数の配列から発生します。不一致がそこで起こっています。パラメータ数の不一致があります。

あなたの状況に応じて、デバッグを使用して、これが起こる場所と修正箇所を確認してください。シンプルなインジェクタで

+0

この問題を引き起こしたWebActivatorのソースコードが呼び出されていることがわかりました。削除する必要があります –

+0

@AndrewKilburn okパラメータに応じて適切に呼び出すか、単に削除してください。 – mybirthname

+0

私は実際にそれが必要でないのでチュートリアルでそれを削除するように言った部分を逃したので、私はそれを削除しました –

関連する問題