- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我已经阅读了很多关于此的帖子,但仍然无法使其正常工作。我正在使用 Visual Studio 2013。我创建了一个新的 MVC 5 项目,并认为使用新的 facebook 登录集成会很酷。它在我的 PC 上的 IIS Express 中运行良好。
但是当我将它上传到生产服务器时,我不断收到非常烦人的消息“在上下文中找不到 owin.Environment 项目”。
这是我所做的。
我有默认的 Startup.cs 类,其中包含以下内容:
using Microsoft.AspNet.Identity;
using Microsoft.Owin;
using Microsoft.Owin.Security.Cookies;
using Owin;
using System.Web.Http;
[assembly: OwinStartupAttribute(typeof(Wodivate.Startup))]
namespace Wodivate
{
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
}
}
在 App_Start 中有一个 Startup.Auth.cs 文件,其中包含:
using Microsoft.AspNet.Identity;
using Microsoft.Owin;
using Microsoft.Owin.Security.Cookies;
using Owin;
namespace Wodivate
{
public partial class Startup
{
// For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
public void ConfigureAuth(IAppBuilder app)
{
// Enable the application to use a cookie to store information for the signed in user
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login")
});
// Use a cookie to temporarily store information about a user logging in with a third party login provider
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
// Uncomment the following lines to enable logging in with third party login providers
//app.UseMicrosoftAccountAuthentication(
// clientId: "",
// clientSecret: "");
//app.UseTwitterAuthentication(
// consumerKey: "",
// consumerSecret: "");
var facebookOptions = new Microsoft.Owin.Security.Facebook.FacebookAuthenticationOptions()
{
AppId = "xxxxxxxxxxxxxxxxxxx",
AppSecret = "xxxxxxxxxxxxxxxxxxxxxxxxx"
};
facebookOptions.Scope.Add("email"); //We want to get user's email information by adding it in scope.
app.UseFacebookAuthentication(facebookOptions);
//app.UseGoogleAuthentication();
}
}
}
我的 Web.config 文件包括:
<add key="owin:AppStartup" value="Wodivate.Startup, Wodivate" />
<add key="owin:AutomaticAppStartup " value="false" />
我还确保关注了 No owin.Environment item was found in the context - only on server 上的帖子并安装了 Microsoft.Owin.Host.SystemWeb
还有其他人坚持这个吗?我已经碰壁 3 天了。
最佳答案
我遇到了同样的问题,这是由 IIS 设置引起的。
我的 IIS 部署有一个顶级站点,下面有几个应用程序。您应该确保您站点级别的“应用程序设置”不会与您的应用程序冲突。
在我的例子中,我在站点级别有“owin:AutomaticAppStartup = false”,它被我的应用程序继承了。
总结:
编辑:我发现您可以简单地在 web.config 中添加以下 appSetting 来覆盖任何潜在的继承冲突。不过,我建议先了解是否存在冲突,这样您才能做出有根据的更改。
<add key="owin:AutomaticAppStartup" value="true"/>
关于c# - Microsoft.Owin.Host.SystemWeb 并且仍然在上下文中找不到 owin.Environment 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23276144/
我有一个 Owin Startup 类,它注册了一个 WebApi Controller 操作并使用 IAppBuilder.UseWebApi 将其 Hook 。我的路由模板是 /api/packa
我正在学习 Pluralsight 类(class) on OAuth2并在解决方案中添加了一个项目。 我使用了一个新的 Asp.Net 4.5.2 空模板,我已将 SSL 设置为 true。 我将框
我已经设法让 Katana/OWIN 使用 HttpListener host 在 Mono 上运行. 我现在正在尝试 Microsoft.Owin.Host.SystemWeb在 Mono 和 XS
我正在创建使用 .NET 中的 Identity 2.1.0 框架的应用程序。我在 Visual Studio 2015 中作为空 Web 应用程序(模板)启动了项目。现在,我在项目中使用 Micro
我已经阅读了很多关于此的帖子,但仍然无法使其正常工作。我正在使用 Visual Studio 2013。我创建了一个新的 MVC 5 项目,并认为使用新的 facebook 登录集成会很酷。它在我的
我从一个只有 Web API 的空解决方案开始。 (没有 mvc) 使用 NuGet 将所有内置包升级到最新的稳定版。 然后, Install-Package Microsoft.AspNet.Web
我有一个项目使用 Microsoft.Owin.Host.SystemWeb 在 Owin 中托管的 AspNet WebApi 2,它使用 Owin 中间件并通过 httpConfiguration
据我所知Microsoft.Owin.Host.SystemWeb允许我在 IIS 上运行 OWIN 应用程序,但今天我发现了另一个名为 Microsoft.Owin.Host.IIS 的包(据我从其
我想在 IIS 和自托管上下文中托管我的 WebApi 项目。在我的研究中,对于 IIS 托管,我发现了这两个包: 1- Microsoft.AspNet.WebApi.WebHost ( src )
我是一名优秀的程序员,十分优秀!