Owin 的 NullReferenceException
NullReferenceException with Owin
我刚刚将一个项目克隆到一台新机器上,我在使用 OWIN 的 MVC 站点上遇到了一个难以调试的问题NullReferenceException
:
[NullReferenceException: Object reference not set to an instance of an object.]
Microsoft.Owin.Security.Cookies.<AuthenticateCoreAsync>d__0.MoveNext() +664
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52
System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() +24
Microsoft.Owin.Security.Infrastructure.<BaseInitializeAsync>d__2.MoveNext() +860
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52
System.Runtime.CompilerServices.TaskAwaiter.GetResult() +21
Microsoft.Owin.Security.Infrastructure.<Invoke>d__0.MoveNext() +427
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
发生在
之后
[assembly: OwinStartupAttribute(typeof(Website.Startup))]
namespace Website
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
}
}
但这就是我在 F10ing 抛出异常后所能看到的——它永远不会到达第一个控制器的构造函数。
有没有人遇到过这种情况 and/or 可以指出错误的可能原因?
将 OWIN 从 v2 更新到 v3 似乎可以解决此问题。
值得注意的是,所有与 OWIN 相关的包也应该更新。
上面的解决方案对我没有帮助,但是在尝试了很多事情之后我终于找到了答案。
我同时开发了多个解决方案,本地主机 cookie 中一定有问题(每个解决方案都在不同的本地主机端口上运行)。清除我的本地主机 cookie 后,问题得到解决。
从 OWIN v3.0 更新到 v3.1 解决了我的问题。
我刚刚将一个项目克隆到一台新机器上,我在使用 OWIN 的 MVC 站点上遇到了一个难以调试的问题NullReferenceException
:
[NullReferenceException: Object reference not set to an instance of an object.]
Microsoft.Owin.Security.Cookies.<AuthenticateCoreAsync>d__0.MoveNext() +664
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52
System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() +24
Microsoft.Owin.Security.Infrastructure.<BaseInitializeAsync>d__2.MoveNext() +860
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +93
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +52
System.Runtime.CompilerServices.TaskAwaiter.GetResult() +21
Microsoft.Owin.Security.Infrastructure.<Invoke>d__0.MoveNext() +427
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
发生在
之后[assembly: OwinStartupAttribute(typeof(Website.Startup))]
namespace Website
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
}
}
但这就是我在 F10ing 抛出异常后所能看到的——它永远不会到达第一个控制器的构造函数。
有没有人遇到过这种情况 and/or 可以指出错误的可能原因?
将 OWIN 从 v2 更新到 v3 似乎可以解决此问题。
值得注意的是,所有与 OWIN 相关的包也应该更新。
上面的解决方案对我没有帮助,但是在尝试了很多事情之后我终于找到了答案。
我同时开发了多个解决方案,本地主机 cookie 中一定有问题(每个解决方案都在不同的本地主机端口上运行)。清除我的本地主机 cookie 后,问题得到解决。
从 OWIN v3.0 更新到 v3.1 解决了我的问题。