没有OWINauthenticationpipe理器与请求相关联
在尝试启用OWIN&AspNet Identity到我的Web Api项目(在VS 2013 + .Net 4.5.1中)后,我在每个有效或无效(request to none exists控制器)请求中收到以下错误:
<Error> <Message>An error has occurred.</Message> <ExceptionMessage> No OWIN authentication manager is associated with the request. </ExceptionMessage> <ExceptionType>System.InvalidOperationException</ExceptionType> <StackTrace> at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.SuppressDefaultAuthenticationChallenges(HttpRequestMessage request) at System.Web.Http.Owin.PassiveAuthenticationMessageHandler.<SendAsync>d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Web.Http.HttpServer.<SendAsync>d__0.MoveNext() </StackTrace> </Error>
当我在debugging模式检查,没有例外处理! 另外,我意识到Configuration
in Startup
类永远不会被调用(确实从来没有被debugging器捕获)。 这里是启动代码:
[assembly: OwinStartup(typeof(bloob.bloob.Startup))] namespace bloob.bloob { public partial class Startup { public void Configuration(IAppBuilder app) { ConfigureAuth(app); } } }
我最初创build与authentication的项目。 我不得不在WebApiConfig.cs文件中删除这个。
// Web API configuration and services // Configure Web API to use only bearer token authentication. config.SuppressDefaultHostAuthentication(); config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
我终于find了问题! 与一个新创build的项目逐行比较,发现没有区别后,我检查了两个项目的参考和是的!…所有的问题是从缺less的包:
Microsoft.Owin.Host.SystemWeb
我不知道为什么在包安装阶段错过了这个包,但奇怪的是为什么没有任何构buildexception抛出? 或没有任何DLL参考错误?
我的情况,它从web.config中的这个设置失败。 希望这有助于避免它。
<appSettings> <add key="owin:AutomaticAppStartup" value="false" /> </appSettings>
如果你实际上不需要OWIN,你可以简单地卸载它。
一种方法是在Nuget Manager中卸载每个OWIN库,顺序将由它们的依赖关系决定。
完成这一步后,您不需要任何OWIN相关的代码或configuration。 因为我正在使用Windows身份validation,这对我来说最好。
我有同样的问题。 该包没有出现在NuGet包pipe理器中。 我在packages.config中添加了引用:
<package id="Microsoft.Owin.Host.SystemWeb" version="2.1.0" targetFramework="net45" />
并在项目文件(xxx.csproj)中引用:
<Reference Include="Microsoft.Owin.Host.SystemWeb"> <HintPath>..\packages\Microsoft.Owin.Host.SystemWeb.2.1.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath> </Reference>
在Web.config中将owin:AutomaticAppStartup
关键字更改为true
,为我解决了这个问题,即将其更改为:
<appSettings> <add key="owin:AutomaticAppStartup" value="false" /> </appSettings>
对此:
<appSettings> <add key="owin:AutomaticAppStartup" value="true" /> </appSettings>
- 在Asp.Net MVC 5中获取login用户的用户名
- Visual Studio 2013智能感知停止为ASP.NET MVC5控制器工作
- MVC5声明Authorize属性的版本
- font-awesome不能在MVC5中使用bundleconfig
- 在Asp.Net的/ bin文件夹中,Roslyn“需要”什么/为什么?
- 重命名ASP.NET MVC项目时出错
- 为什么新的fb api 2.4在Identity和oauth 2上的MVC 5上返回null电子邮件?
- 解耦ASP.NET MVC 5 Identity以允许实现分层应用程序
- ASP.NET MVC 5 Web.config:“FormsAuthenticationModule”或“FormsAuthentication”