C# 为什么[Owin]在新项目上抛出空异常?

C# 为什么[Owin]在新项目上抛出空异常?,c#,nullreferenceexception,owin,C#,Nullreferenceexception,Owin,我有一个相当奇怪的问题,我不知道如何解决,甚至不知道我是否能解决它 我对这个问题做了一些研究,但找不到导致它的原因的答案 我在听一个相当简单的指南 在启用SSL并将控制器更改为需要https后,出现以下错误: “/”应用程序中出现服务器错误 对象引用未设置为对象的实例 描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源 异常详细信息:System.NullReferenceException:对象引用不存在 设置为对象的实例 源错

我有一个相当奇怪的问题,我不知道如何解决,甚至不知道我是否能解决它

我对这个问题做了一些研究,但找不到导致它的原因的答案

我在听一个相当简单的指南

在启用SSL并将控制器更改为需要https后,出现以下错误:

“/”应用程序中出现服务器错误

对象引用未设置为对象的实例

描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源

异常详细信息:System.NullReferenceException:对象引用不存在 设置为对象的实例

源错误:

在执行过程中生成了未处理的异常 当前web请求。关于货物来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常

堆栈跟踪:

[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更改为DropCreateDatabaseAlways

我不确定您的错误原因,但这似乎是Katana项目中的一个问题

您可以在上面的链接或从中尝试解决方法

这就是我在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 => { }
    }
});
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" />