Microsoft最近
introduced新的ASP.NET身份 – 替换旧(简单)成员资格。不幸的是,我不能在我的旧项目中使用这个新的会员制,因为它抛出System.InvalidOperationException:在上下文中找不到owin.Environment项。这是一个已知的
bug,但微软对此问题保持沉默。重现此错误的最简单的方法是在VS 2013(使用Web Tools 2013预览刷新)中创建新的Web应用程序(MVC,WebForms或WebApi – 无关紧要),然后转到登录页面。它会奏效然后将应用程序中的命名空间更改为原始命名空间以外的其他任何位置,并且登录页面将抛出该错误。将命名空间更改回原始(创建项目时使用的)将解决此问题。
它看起来像.net存储在某处与原始命名空间相关的东西,但是我找不到什么和在哪里,它不在项目文件夹中。我知道stackoverflow不是一个bug报告的地方,我只是希望有人已经找到了解决这个问题的解决方案,或者是参与开发ASP.NET Identity的人会看到这一点。
解决方法
很可能它找不到OWIN启动类。启动类的默认约定是[AssemblyName] .Startup。如果您不再遵守该约定,则需要在Web.Config中指定启动类的全名。
下一个版本的Microsoft.Owin.Host.SystemWeb程序包现在会在启动类找不到时抛出详细的异常消息。