C# 为什么[Owin]在新项目上抛出空异常?
我有一个相当奇怪的问题,我不知道如何解决,甚至不知道我是否能解决它 我对这个问题做了一些研究,但找不到导致它的原因的答案 我在听一个相当简单的指南 在启用SSL并将控制器更改为需要https后,出现以下错误: “/”应用程序中出现服务器错误 对象引用未设置为对象的实例 描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源 异常详细信息:System.NullReferenceException:对象引用不存在 设置为对象的实例 源错误: 在执行过程中生成了未处理的异常 当前web请求。关于货物来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常 堆栈跟踪: [NullReferenceException:对象引用未设置为 对象。]C# 为什么[Owin]在新项目上抛出空异常?,c#,nullreferenceexception,owin,C#,Nullreferenceexception,Owin,我有一个相当奇怪的问题,我不知道如何解决,甚至不知道我是否能解决它 我对这个问题做了一些研究,但找不到导致它的原因的答案 我在听一个相当简单的指南 在启用SSL并将控制器更改为需要https后,出现以下错误: “/”应用程序中出现服务器错误 对象引用未设置为对象的实例 描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源 异常详细信息:System.NullReferenceException:对象引用不存在 设置为对象的实例 源错
Microsoft.Owin.Security.Cookies.CookieAuthenticationProvider.Exception(CookieExceptionContext 上下文)+49
Microsoft.Owin.Security.Cookies.d_uu2.MoveNext() +3698 System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务 任务)+93
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 task)+52 System.Runtime.CompilerServices.TaskWaiter`1.GetResult() +24.Microsoft.Owin.Security.Infrastructure.d_u0.MoveNext() +810 System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务 任务)+93
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 task)+52 System.Runtime.CompilerServices.TaskWaiter.GetResult() +21 Microsoft.Owin.Security.Infrastructure.d_u0.MoveNext()+427 System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务 任务)+93
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 task)+52 System.Runtime.CompilerServices.TaskWaiter.GetResult() +21 Microsoft.AspNet.Identity.Owin.d_u0.MoveNext()+641 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)+93
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 task)+52 System.Runtime.CompilerServices.TaskWaiter.GetResult() +21 Microsoft.AspNet.Identity.Owin.d_u0.MoveNext()+641 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)+93
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 task)+52 System.Runtime.CompilerServices.TaskWaiter.GetResult() +21 Microsoft.AspNet.Identity.Owin.d_u0.MoveNext()+641 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)+93
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 task)+52 System.Runtime.CompilerServices.TaskWaiter.GetResult() +21 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.d_u5.MoveNext() +287 System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务 任务)+93
System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 task)+52 System.Runtime.CompilerServices.TaskWaiter.GetResult() +21 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.d_u2.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步骤,布尔值&同步完成)+155 版本信息:Microsoft.NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.34237 关闭
SSL
解决了这个问题,我还知道在app\u start
中注释掉启动。auth
可以解决SSL
的问题
有人知道为什么会发生这种情况吗?我遇到了类似的错误,但当我将EF配置从DropCreateDatabaseIfModelChanges
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 => { }
}
});
app.UseCookieAuthentication(新的CookieAuthenticationOptions
{
AuthenticationType=DefaultAuthenticationTypes.ApplicationOkie,
LoginPath=新路径字符串(“/Account/Login”),
Provider=新CookieAuthenticationProvider
{
OnValidateIdentity=SecurityStampValidator.OnValidateIdentity(
validateInterval:TimeSpan.FromMinutes(1),
regenerateIdentity:(管理器,用户)=>user.GenerateUserIdentityAsync(管理器)),
//****这就是我所做的***//
OneException=上下文=>{}
}
});
我同意添加“OnException=context=>{}”可以解决显示的异常问题,但我刚才看到的下一个错误可能表明了一个常见的原因,因此是在此修复之前尝试的第一步
我现在有一个错误,通知我上下文支持的模型已更改。这可能意味着,对于遇到此问题的其他ASP.NET身份用户,尝试添加迁移和更新数据库可能会解决此问题,如果失败,请添加上面的行。这也意味着
Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration>());
var ctx = new ApplicationDbContext(...);
var count = ctx.Users.Count();
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;
})
}
});
<httpRuntime ...... targetFramework="4.6.1" />
<compilation ...... targetFramework="4.6.1" />