mic*_*man 50 c# nullreferenceexception owin
我有一个相当奇怪的问题,我不知道如何解决或者我是否能解决它.
我已经对这个问题进行了一些研究,但无法找到导致问题的答案.
我正在http://www.asp.net/mvc/tutorials/mvc-5/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-并遵循一个相当简单的指南-openid点登录
启用SSL
并更改controller
为要求https后,我收到以下错误:
'/'应用程序中的服务器错误.
你调用的对象是空的.
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例.
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
堆栈跟踪:
[NullReferenceException:对象引用未设置为对象的实例.]
Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.Exception(CookieExceptionContext context)+49
Microsoft.Owin.Security.Cookies.d__2.MoveNext()+3698 System.Runtime .CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务task)+93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务task)+52 System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()+24 Microsoft.Owin.Security.Infrastructure. d__0.MoveNext()810个System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务task)+93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务task)+52 System.Runtime.CompilerServices.TaskAwaiter.GetResult()+21 Microsoft.Owin.Security.Infrastructure.d__0.MoveNext()+ 427 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)+93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(T 请求任务)+52 System.Runtime.CompilerServices.TaskAwaiter.GetResult()+ 21 Microsoft.AspNet.Identity.Owin.d__0.MoveNext()+641 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)+93
System. Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务task)+52 System.Runtime.CompilerServices.TaskAwaiter.GetResult()+21 Microsoft.AspNet.Identity.Owin.d__0.MoveNext()641 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (任务task)+93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务task)+52 System.Runtime.CompilerServices.TaskAwaiter.GetResult()+21 Microsoft.AspNet.Identity.Owin.d__0.MoveNext()641系统.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务task)+93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务task)+52 System.Runtime.CompilerServices.TaskAwaiter.GetResult()+21 Microsoft.Owin.Host.SystemWeb. IntegratedPipeline.d__5.MoveN EXT()287个System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务task)+93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务task)+52 System.Runtime.CompilerServices.TaskAwaiter.GetResult()+21微软. Owin.Host.SystemWeb.IntegratedPipeline.d__2.MoveNext()+272 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()+22 Microsoft.Owin.Host.SystemWeb.Infrastructure.ErrorState.Rethrow()+33 Microsoft.Owin.Host .SystemWeb.IntegratedPipeline.StageAsyncResult.End(IAsyncResult ar)+150
Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork(IAsyncResult ar)+42
System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +415 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&completedSynchronously)+155版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.34237
关闭SSL
修复这个问题,我也知道,注释掉startup.auth
在app_start
修复的问题SSL
.
有谁知道为什么会这样?
Ben*_*ull 33
与Sandeep的答案类似,我还更新了cookie身份验证提供程序.除了,我没有吞下错误,而是抛出了异常,因此您可以看到底层问题是什么:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
// Enables the application to validate the security stamp when the user logs in.
// This is a security feature which is used when you change a password or add an external login to your account.
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, User>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)),
/* I changed this part */
OnException = (context =>
{
throw context.Exception;
})
}
});
Run Code Online (Sandbox Code Playgroud)
我的根本问题是我改变了模型并忘记添加新的迁移.
San*_*mar 19
我收到了类似的错误,但当我将Drop配置从DropCreateDatabaseIfModelChanges <Context>更改为DropCreateDatabaseAlways <Context>时.
我不确定你的错误的原因但似乎是Katana项目中的一个问题https://katanaproject.codeplex.com/workitem/346
您可以在上面的链接或https://katanaproject.codeplex.com/discussions/565294上尝试解决方法
这就是我在StartUp.Auth.cs中所做的
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<UserManager, User>(
validateInterval: TimeSpan.FromMinutes(1),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)),
//**** This what I did ***//
OnException = context => { }
}
});
Run Code Online (Sandbox Code Playgroud)
Pat*_*ick 10
在创建新项目后运行以下更新对我有用:
update-package Microsoft.Owin
update-package Microsoft.Owin.Security
update-package Microsoft.Owin.Security.Cookies
我认为最后一个可能已经足够了.我正在使用Visual Studio 2013(12.0.21005.1)和带有Web API的ASP.Net Web应用程序模板.
我同意添加"OnException = context => {}"解决了显示的异常,但我刚才看到的下一个错误可能是一个常见的原因,因此在此修复之前尝试的第一步.
我现在有一个错误告诉我上下文的模型支持已经改变.这可能意味着尝试添加迁移和更新数据库可以为遇到此问题的其他ASP.NET身份用户解决此问题,如果失败则添加上面的行.这也会提出一些基本检查,例如"我可以连接到数据库吗?" 如果您看到此Owin Security异常,也可能值得检查.一旦这个子序列错误得到修复,我可以愉快地删除OnException行,并且该站点仍然正常工作.
归档时间: |
|
查看次数: |
14967 次 |
最近记录: |