Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在上下文中未找到owin.Environment项_Asp.net_.net_Owin_Katana_Asp.net Identity - Fatal编程技术网

Asp.net 在上下文中未找到owin.Environment项

Asp.net 在上下文中未找到owin.Environment项,asp.net,.net,owin,katana,asp.net-identity,Asp.net,.net,Owin,Katana,Asp.net Identity,Microsoft最近推出了新的ASP.NET身份-取代旧的(简单)成员身份。不幸的是,我无法在旧项目中使用此新成员资格系统,因为它引发system.InvalidOperationException:在上下文中找不到owin.Environment项。这是一个众所周知的问题,但微软对此保持沉默。复制此错误的最简单方法是在VS 2013中创建一个新的web应用程序(MVC、WebForms或WebApi-无所谓)(使用web Tools 2013预览刷新),然后转到登录页面。它会起作用的。然后将

Microsoft最近推出了新的ASP.NET身份-取代旧的(简单)成员身份。不幸的是,我无法在旧项目中使用此新成员资格系统,因为它引发system.InvalidOperationException:在上下文中找不到owin.Environment项。这是一个众所周知的问题,但微软对此保持沉默。复制此错误的最简单方法是在VS 2013中创建一个新的web应用程序(MVC、WebForms或WebApi-无所谓)(使用web Tools 2013预览刷新),然后转到登录页面。它会起作用的。然后将应用程序中的名称空间更改为原始名称空间以外的任何内容,登录页面将抛出该错误。将名称空间更改回原始名称空间(创建项目时使用的名称空间)将解决此问题


它看起来像是.net存储了一些与原始名称空间相关的内容,但我找不到内容和位置,它不在项目文件夹中。我知道stackoverflow不是一个bug报告的地方,我只是希望有人已经找到了这个问题的解决方案,或者参与ASP.NET Identity开发的人会看到这一点。

很可能它找不到OWIN启动类。Startup类的默认约定为[AssemblyName]。Startup。如果不再遵循该约定,则需要在Web.Config中指定启动类的全名。

下一版本的Microsoft.Owin.Host.SystemWeb包现在在找不到启动类时抛出详细的异常消息


我创建了两个名为TesteMvc5.2和TesteMvc5.0的新项目,但这两个项目一开始都不起作用

这是因为默认命名空间与程序集名称不同。 但是在我把线放好之后

<add key="owin:AppStartup" value="TesteMvc5._2.Startup, TesteMvc5.2" />


在web.config上,它运行良好。

我也遇到了同样的问题。我用web.config修复了它

但是,我已经更改了程序集名称和命名空间,并且在任何地方都找不到原始程序集名称

然后我发现clean并没有从垃圾箱中移除原始组件


删除垃圾箱后,我可以删除web.config OWIN条目。

如果您碰巧从MVC4复制了下面的配置,应该将其从web.config中删除

<add key="owin:AutomaticAppStartup" value="false" />

我尝试了本页上提到的所有内容,但都无效。然后我在IIS中发现了一个名为owin:AutomaticAppStartup的设置。您可以在默认网站的IIS管理器的“应用程序设置”页面中找到它。检查该设置是否为真。如果未设置为true。这对我有用

这是我找到答案的网站:

我也遇到了同样的问题,在确保这一行位于web.config中后,问题得到了修复:

<add key="owin:AutomaticAppStartup" value="true" />


清理ASP.NET临时文件帮助我解决了这个问题

我遇到了完全相同的错误,但事实证明,我的web.config中还有另一个配置问题。我的web.config在system.web下的compilation元素中缺少defaultLanguage=“c#”属性

在这种情况下,它将默认为VB。因此,除非用VB编写启动类,否则应将默认语言更改为C#

不正确:

<compilation debug="true" optimizeCompilations="true" targetFramework="4.6.1">

这是正确的(除非您使用VB):



在web.config中将默认语言添加到编译中为我做到了

也有同样的问题。感谢分享解决方案。 这



对我来说是固定的

我不知道为什么这样做有效,但它做到了

我的问题是在2013年。在WebConfig中,debug被设置为true,我得到了那个错误。当我将其设置为false时,它工作正常,然后我重置为true,它继续工作正常


起初,当debug变为false之前为true时,我在启动代码中设置了一个断点,但根本没有达到该断点。更改为false后,按save,然后返回true,启动代码被调用,程序正常运行。

以上所有答案对我都不起作用

我的项目缺少包含以下内容的“Startup”类:

using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(NAMESPACE.Startup))]
namespace NAMESPACE
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}
这个名为“Startup.cs”的文件位于项目的根文件夹(~/)上


我的“Web.config”没有在其他回复上发布任何此类“Owin”配置。

添加到Web.config中修复了此问题。谢谢大家!@pranavrastogi因丢失信息而被否决@graycrow此评论必须是答案!非常感谢。清理bin和obj目录也帮了我的忙(结合web.config的修改)。所以实际上有两个步骤:1添加Luiz建议的内容,2添加内容。Arvind,你可以发布更多的web.config来展示它是如何工作的吗?谢谢@罗恩,那个链接是broken@ArvindSingh-您的解决方案非常有效。我们有一个子应用程序作为主网站的一部分托管,虽然我们必须执行通常的“inheritinchildapplications=false”,但子应用程序通常会因此错误而失败(并非总是如此),因此,例如,它在50%的时间内工作,在50%的时间内抱怨OWIN。此应用程序在大约3年内未被触动。虽然它与其他解决方案一起在服务器上本地运行良好,但当您使用域名访问它时,它将无法正常工作,因此这两条语句完美地结合在一起。这为我修复了它。欢迎使用堆栈溢出。你应该在回答中加上一些描述。一句话通常是不够的。将defaultLanguage设置为C很重要,那么它是否与您之前一年创建的答案完全相同?谢谢这为我修复了一个EPiServer Alloy项目。标记应该很接近。谢谢你到底是怎么想出来的?我们先尝试了所有其他方法,我们两人都觉得“这个解决方案不可能解决问题”,结果成功了。我支持r3mark“你到底是怎么弄明白的?”为我修正了它-我没有信用。请注意,OwinContext无法从Global.asax访问。另请参见
<add key="owin.AppStartup" value="Namespace.Startup, Namespace"/>
<add key="owin:AutomaticAppStartup" value="false"/>  
using Microsoft.Owin;
using Owin;

[assembly: OwinStartupAttribute(typeof(NAMESPACE.Startup))]
namespace NAMESPACE
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}