gra*_*row 28 .net asp.net owin katana asp.net-identity
微软最近推出了新的ASP.NET身份 - 替换旧的(简单)成员资格.不幸的是,我不能在我的旧项目中使用这个新的成员资格系统,因为它抛出System.InvalidOperationException:在上下文中找不到owin.Environment项.这是一个已知的错误,但微软对这个问题保持沉默.重现此错误的最简单方法 - 在VS 2013(使用Web Tools 2013 Preview Refresh)创建新的Web应用程序(MVC,WebForms或WebApi - 无关紧要),然后转到登录页面.它会工作.然后将应用程序中的命名空间更改为原始命名空间以外的任何内容,登录页面将抛出该错误 将名称空间更改回原始名称(您在创建项目时使用的名称空间)将解决此问题.
它看起来像.net存储某个与原始命名空间相关的东西,但是我找不到它在哪里和哪里,它不在项目文件夹中.我知道stackoverflow不是bug报告的地方,我只是希望有人已经找到了解决这个问题的方法,或者参与ASP.NET身份开发的人会看到这个.
小智 26
很可能它找不到OWIN Startup类.Startup类的默认约定是[AssemblyName] .Startup.如果您不再遵循该约定,则需要在Web.Config中指定Startup类的全名.
当无法找到Startup类时,Microsoft.Owin.Host.SystemWeb包的下一个版本现在会抛出详细的异常消息.
我创建了两个名为TesteMvc5.2和TesteMvc5.0的新项目,这两个项目都没有启动
这是因为默认命名空间与程序集名称不同.但在我放线之后
<add key="owin:AppStartup" value="TesteMvc5._2.Startup, TesteMvc5.2" />
Run Code Online (Sandbox Code Playgroud)
在web.config上运行正常.
我遇到了同样的问题,在确定此行在web.config中后修复了它:
<add key="owin:AutomaticAppStartup" value="true" />
Run Code Online (Sandbox Code Playgroud)
小智 8
我有完全相同的错误,但事实证明我的web.config中有另一个配置问题.我的web.config在system.web下的编译元素中缺少属性defaultLanguage ="c#".
在这种情况下,它将默认为VB.因此,除非您使用VB编写Startup类,否则应将默认语言更改为C#.
不正确:
<compilation debug="true" optimizeCompilations="true" targetFramework="4.6.1">
Run Code Online (Sandbox Code Playgroud)
这是正确的(除非你使用VB):
<compilation debug="true" defaultLanguage="c#" optimizeCompilations="true" targetFramework="4.6.1">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40694 次 |
| 最近记录: |