Microsoft.Owin.De l'hôte.SystemWeb et toujours Pas de owin.L'environnement de l'élément a été trouvé dans le cadre
J'ai lu beaucoup de messages sur ce sujet, mais ne peut toujours pas obtenir que cela fonctionne.
Je suis à l'aide de Visual Studio 2013. J'ai créé un nouveau MVC 5 du Projet et de la pensée qu'il serait cool d'utiliser le nouveau facebook login de l'intégration. Il fonctionne très bien sur mon PC dans IIS Express.
Mais quand je le télécharge sur le serveur de Production, je reçois le très ennuyeux "Pas d'owin.L'environnement de l'élément a été trouvé dans le cadre" message.
Voici ce que j'ai fait.
- Je n'ai jamais changé le nom de mon projet ou de l'assemblée.
- Le nom de l'assembly est Wodivate
- L'espace de noms est Wodivate
-
J'ai le Démarrage par défaut.cs de la classe qui contient les éléments suivants:
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); } } }
-
Dans le App_Start il y a un Démarrage.Auth.cs de fichier qui contient:
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(); } } }
-
De Mon Site Web.fichier de configuration comprend:
<add key="owin:AppStartup" value="Wodivate.Startup, Wodivate" /> <add key="owin:AutomaticAppStartup " value="false" />
-
J'ai aussi fait en sorte de suivre le post sur Pas de owin.L'environnement de l'élément a été trouvé dans le cadre uniquement sur le serveur et de l'installation de Microsoft.Owin.De l'hôte.SystemWeb
Quelqu'un d'autre coincé sur cette? J'ai été frapper un mur pour 3 jours.
- Dupliquer: stackoverflow.com/questions/18232549/...
- J'ai vu que le post trop Morten, mais il ne fonctionne pas pour moi. À la recherche pour voir si quelqu'un a vu tous ces messages et sont encore coincés ou trouvé quelque chose de différent pour le résoudre. C'est tellement étrange..
- Assurez-vous que votre site Web.config vraiment fait ça à la bonne place sur votre serveur de production...
- Avez-vous a finalement obtenu ce travail? J'ai couru dans la même question. Démarrage de la classe est définitivement trouvé, donc ce doit être autre chose. La plupart des fâcheusement cela se produit uniquement sur machine de production, pas sur localhost.
Vous devez vous connecter pour publier un commentaire.
J'ai eu ce même problème et il a été causé par les paramètres IIS.
Mon IIS déploiement avait un site de niveau supérieur avec plusieurs applications en dessous. Vous devez vous assurer que l'Application "Réglages" de votre Site ne sont pas en conflit avec votre application.
Dans mon cas, j'ai eu "owin:AutomaticAppStartup = false" au niveau du Site, qui a été hérité par mon application.
Résumé:
Edit:
J'ai découvert que vous pouvez simplement ajouter le suivant appSetting dans le web.config pour remplacer tous les potentiels héritée des conflits. Je le recommande à comprendre si il y a des conflits mais d'abord, de sorte que vous pouvez faire de l'éducation de la changer.
J'ai besoin d'un autre site web.config changement pour résoudre ce problème:
Mais étant donné que ce paramètre est découragé j'ai essayé:
mais cela m'a donné l'erreur:
"Opération n'est pas valide en raison de l'état actuel de l'objet"
et je ne suis pas sûr de ce qui s'y passe encore, si c'est le mauvais module ou autre chose.
Avez-vous essayé de faire quelque chose comme cela?
Avez-vous vérifié le mode de pool d'application utilisé. OWIN fonctionne avec le mode intégré de l'application de la piscine. Il l'habitude de travailler en mode classique.
Quand vous obtenez l'exception " Non owin.L'environnement de l'élément a été trouvé dans le contexte. " de la Demande.GetOwinContext(), cela signifie généralement que le OWIN de démarrage de la classe de détection d'échec.
Assurez-vous que IIS est en cours d'exécution le code de Démarrage.cs (dans le dossier racine) au démarrage. Pour vérifier si il le fait sur un serveur de production, je vous recommande les suivants. 1) Insérer la ligne suivante:
2) Obtenir l'utilitaire DebugView à partir d'ici: https://technet.microsoft.com/en-us/library/bb896647.aspx
3) Exécuter DbgView.exe en tant qu'administrateur et assurez-vous que l'option "Capture /Capture Global Win32" EST activé.
4), Vous devriez voir un message de trace à partir du code ci-dessus lorsque IIS lance (assurez-vous qu'il est en fait redémarré en touchant web.config).
5) Si elle n'est pas exécutée, vérifiez ici: http://www.asp.net/aspnet/overview/owin-and-katana/owin-startup-class-detection
Il y a un certain nombre de raisons qu'il n'est pas exécuté. Beaucoup d'entre eux sont sur stackoverflow. Un de plus que je vais ajouter, c'est celui-ci: assurez-vous que vous n'avez pas le paramètre "lot=false" sur la "compilation" nœud de web.config.
Ce qui se passe est que le bac n'est pas compris la référence. Dans les préférences de le changer pour "Copie Locale" à TRUE. puis de le publier à nouveau.
J'ai du mal avec cette pendant des JOURS!! Tout essayé dans tous les post que j'ai pu trouver et cela a réglé le problème. J'étais en développement dans VS 2013 et publication sur un Serveur 2008 VM et j'ai continué à obtenir le même "Pas d'owin.L'environnement de l'élément a été trouvé dans le cadre" message.
J'ai mis cette entrée dans le web config pour les modules et il fixe. Je ne suis pas sûr de comprendre pourquoi il fixe, mais il l'a fait.