9
votes

Microsoft.Owin.host.SystemWeb et obtenu toujours aucun article Owin.Environment a été trouvé dans le contexte

J'ai lu beaucoup de messages à ce sujet mais je ne peux toujours pas obtenir cela pour travailler. J'utilise Visual Studio 2013. J'ai créé un nouveau projet MVC 5 et je pensais qu'il serait cool d'utiliser la nouvelle intégration de la connexion Facebook. Ça marche bien sur mon PC dans IIS Express.

Mais quand je le télécharge sur le serveur de production, je continue à obtenir le très gêne "Aucun article Owin.Environment n'a été trouvé dans le contexte" Message " P>

Voici Ce que j'ai fait. p>

  1. Je n'ai jamais changé le nom de mon projet ou de mon assemblage. Li>
  2. Le nom de l'assemblage est wodivate li>
  3. L'espace de noms est wodivate li>
  4. J'ai la classe de démarrage par défaut.cs qui contient les éléments suivants: p>

    <add key="owin:AppStartup" value="Wodivate.Startup, Wodivate" />
    <add key="owin:AutomaticAppStartup " value="false" />
    
  5. dans l'app_start Il existe un fichier startup.auth.cs qui contient: p>

    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();
            }
        }
    }
    
  6. mon fichier web.config inclut: p>

    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);
            }
    
        }
    }
    
  7. Je me suis également assuré de suivre le message sur Aucun article Owin.Environment n'a été trouvé dans le contexte - uniquement sur le serveur et installé Microsoft.owin.host.systemWeb P> Li> ol>

    Quelqu'un d'autre coincé sur ceci? J'ai frappé un mur pendant 3 jours. P> p>


4 commentaires

Duplicaté: Stackoverflow.com/questions/18232549/...


J'ai vu ce post trop mortel, mais cela n'a pas fonctionné pour moi. Vous cherchez à voir si quelqu'un a vu tous ces messages et reste coincé ou trouvé quelque chose de différent pour le résoudre. C'est tellement étrange ..


Assurez-vous que votre web.config a vraiment fait le bon endroit sur votre serveur de production ...


Avez-vous finalement eu le travail? J'ai rencontré le même problème. La classe de démarrage est définitivement trouvée, alors cela doit être autre chose. Le plus ennuyeux cela ne se produit que sur la machine de production, pas sur localhost.


7 Réponses :


3
votes

J'avais besoin d'un autre changement web.config pour résoudre ce problème: xxx pré>

si donné que Ce paramètre est découragé j'ai essayé: p>

<modules>
  <remove name="Owin" />
  <add name="Owin" type="Microsoft.Owin.Host.SystemWeb.OwinHttpModule, Microsoft.Owin.Host.SystemWeb" />
</modules>


0 commentaires

3
votes

Avez-vous essayé de faire quelque chose comme ça? XXX


1 commentaires



4
votes

J'ai eu ce même problème et il a été causé par des paramètres IIS.

Mon déploiement IIS avait un site de haut niveau avec plusieurs applications en dessous. Vous devez vous assurer que les "paramètres d'application" du niveau de votre site ne sont pas en conflit avec votre application. P>

dans mon cas, j'avais "Owin: automatiqueAppstartup = false" au niveau du site, qui a été hérité de mon Application. P>

Résumé: strong> p>

  1. Ouvrir Manager IIS LI>
  2. Sélectionnez Server -> Paramètres de l'application. Assurez-vous aucun conflit Owin à ce niveau. LI>
  3. Sélectionnez Site -> Paramètres de l'application. Assurez-vous aucun conflit Owin à ce niveau. LI> ol>

    Entrez la description de l'image ici p>


    Edit: strong> J'ai découvert que vous pouvez simplement ajouter l'appset d'appSeting suivant dans web.config pour remplacer tous les conflits hérités potentiels. Je recommanderais de comprendre s'il y a d'abord des conflits, vous pouvez donc faire un changement éduqué. P>

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


0 commentaires

2
votes

Avez-vous vérifié le mode de piscine d'applications étant utilisé. Owin fonctionne avec le mode intégré du pool d'applications. Il ne fonctionnera pas en mode Clasic.


0 commentaires

0
votes

Que se passe-t-il, c'est que votre bac n'incluait pas la référence. Dans les préférences, changez-la pour "copier local" vers true. Puis publiez-le à nouveau.


0 commentaires

0
votes

J'ai eu du mal avec ça pendant des jours !! Tout essayé dans chaque poste que je pouvais trouver et cela corrigé le problème. Je développais à VS 2013 et publie à un serveur 2008 VM et je suis resté à obtenir le même message "Aucun article Owin.Environment n'a été trouvé dans le contexte" Message ".

i Mettez cette entrée dans Web config pour les modules et celui-ci. Je ne suis pas sûr de comprendre pourquoi cela lui a réparé mais c'est fait. xxx


1 commentaires

N'est-ce pas la même chose que @ la réponse de breandán ?



1
votes

Lorsque vous obtenez l'exception "Aucun article Owin.Environment n'a été trouvé dans le contexte". De Demande.getowincontext (), il signifie généralement que la détection de classe de démarrage Owin a échoué.

Assurez-vous que IIS exécute le code dans STERTUP.CS (dans le dossier racine) au démarrage. Pour vérifier si cela fait sur un serveur de production, je recommanderais ce qui suit. 1) Insérez la ligne suivante: p>

...
 System.Diagnostics.Trace.WriteLine("OwinStartup " + this.GetType().Namespace);
 ConfigureAuth(app);
...


0 commentaires