Logging. Manglende metode 'WriteWarning' unntak

stemmer
1

Jeg har laget ny ASP.NET vNext Project og legg følgende til Startup.cs

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddConsole();
        // Add cookie-based authentication to the request pipeline
        app.UseCookieAuthentication(o =>
        {
            o.AuthenticationType = CookieAuthenticationDefaults.AuthenticationType; 
            o.LoginPath = new PathString(/Account/Login);
        });

        app.UseMvc();
        app.UseWelcomePage();

        app.UseIdentity();
    }

og til project.json

dependencies: {
    Kestrel: 1.0.0-beta1,
    Microsoft.AspNet.Server.IIS: 1.0.0-beta1,
    Microsoft.Net.Http.Client: 1.0.0-*,
    Microsoft.AspNet.Hosting: 1.0.0-beta1,
    Microsoft.AspNet.Diagnostics: 1.0.0-beta1,
    Microsoft.AspNet.Server.WebListener: 1.0.0-beta1,

    Microsoft.Framework.Logging.Console: 1.0.0-beta1,

    Microsoft.AspNet.Mvc: 6.0.0-beta1,
    Microsoft.AspNet.Identity: 3.0.0-beta1,
    Microsoft.AspNet.Security: 1.0.0-beta1,
    Microsoft.AspNet.Security.Cookies: 1.0.0-*,
},

På starten jeg får følgende unntak

System.MissingMethodException
Method not found: 'Void Microsoft.Framework.Logging.LoggerExtensions.WriteWarning(Microsoft.Framework.Logging.ILogger, System.String)'.
at Microsoft.AspNet.Security.Cookies.CookieAuthenticationHandler.<AuthenticateCoreAsync>d__1.MoveNext() 
at System.Runtime.CompilerServices.AsyncTaskMethodBuilder<TResult>.Start<TStateMachine>(TStateMachine& stateMachine) 
at Microsoft.AspNet.Security.Cookies.CookieAuthenticationHandler.AuthenticateCoreAsync() 
at System.Threading.LazyInitializer.EnsureInitializedCore<T>(T& target, Boolean& initialized, Object& syncLock, Func<T> valueFactory) 
at System.Threading.LazyInitializer.EnsureInitialized<T>(T& target, Boolean& initialized, Object& syncLock, Func<T> valueFactory) 
at Microsoft.AspNet.Security.Infrastructure.AuthenticationHandler.AuthenticateAsync() 
at Microsoft.AspNet.Security.Infrastructure.AuthenticationHandler.<BaseInitializeAsync>d__1.MoveNext() 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 
at Microsoft.AspNet.Security.Infrastructure.AuthenticationMiddleware<TOptions>.<Invoke>d__1.MoveNext() 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 
at Microsoft.AspNet.Loader.IIS.KlrHttpApplication.<ProcessRequestAsyncImpl>d__1.MoveNext() 
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 
at Microsoft.AspNet.Loader.IIS.HttpApplicationBase.<InvokeProcessRequestAsyncImpl>d__1.MoveNext()N

Fra andre siden, ikke neste linjen ikke heve unntak: loggerFactory.Create ( TestLogger) WriteWarning ( noen advarsel msg.);

Publisert på 13/12/2014 klokken 13:19
kilden bruker
På andre språk...                            


1 svar

stemmer
1

For å svare på konkrete spørsmål

Problemet ser ut til å stamme fra det faktum at du blander versjoner av avhengigheter, og for forhåndsavhengig det er ingen kompatibilitet bar. I utgangspunktet må du bruke samme versjon over hele linja.

Jeg tror ting begynner fra denne linjen:

 "Microsoft.AspNet.Security.Cookies": "1.0.0-*",

Hva det betyr er at du ber om den nyeste nuget pakken tilgjengelig, og avhengig av din nuget kilde (kan du dele din nuget.config) det kan bety at du får en mye nyere versjon av denne pakken enn de andre pakkene som er merket beta1

For eksempel:

 "Microsoft.Framework.Logging.Console": "1.0.0-beta1",

Prøv å merke pakkene som 1.0.0-beta1 stedet.

På en annen side

Rekkefølgen av ringer middlewares er viktig, det bestemmer den utførelse orden av rørledningen. I ditt tilfelle du lagt identitet etter MVC, du ønsker å flytte den linjen opp over AddMvc.

Svarte 15/12/2014 kl. 05:22
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more