67 votes

ASP.NET Web Api - Startup.cs n'existe pas

J'ai un ASP.NET l'Api Web solution qui ne contient pas de Démarrage.cs de la classe. Je présume que c'est parce que la solution n'est pas créé comme un MVC solution.

Tout le code de démarrage est défini dans le Global.asax.cs fichier comme vous pouvez le voir ci-dessous

public class Global : HttpApplication
{
    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup
        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
    }
}

Cependant, maintenant, je veux avoir du support pour l'authentification OAuth et toute la documentation que j'ai trouvé est basé sur un Démarrage.cs avec la classe suivante

public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        ConfigureAuth(app);
    }
}

Est-il possible de simplement ajouter cette nouvelle classe dans ma solution et la solution sera de continuer à travailler?

Sera-ce tout conflit avec le Global.asax.cs de la classe?

EDIT: Après j'ai ajouté le Démarrage.cs de la classe, je ne peux pas frapper le point de rupture que j'ai ajouté dans ce...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(MyGame.Startup))]

namespace MyGame
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

Une idée de ce qui se passe?

54voto

freedeveloper Points 2087

Si vous avez installé les packages Owin, vous pouvez simplement créer la classe de démarrage avec:

entrez la description de l'image ici

45voto

Tyler Stahlhuth Points 281

De démarrage.cs est une partie de la OWIN autorisation paquet. Si le paquet n'est pas encore ajouté par NuGet, je ne peux pas garantir que cela fonctionnerait. Cependant, à en juger par cette réponse, il peut travailler de toute façon en fonction de votre environnement.

https://stackoverflow.com/a/24678109/6442626

Réponse courte: Si vous avez installé Microsoft.Owin.De sécurité.OAuth de NuGet, ça devrait être bon. Sinon, vous devez l'installer.

Mise à jour: Afin d'obtenir MVC pour appeler la méthode de Configuration de démarrage, vous devez également installer le Microsoft.Owin.De l'hôte.SystemWeb paquet de NuGet. Il n'y a rien de spécial, vous devez changer avec le web.config, IIS va automatiquement détecter le Owin de l'hôte et de le charger pour vous.

8voto

SharpLizard Points 81

Vous pouvez ajouter votre propre classe de démarrage, mais vous devez vous assurer que Owin la reconnaît. Il existe plusieurs façons de procéder , mais si vous souhaitez utiliser une classe de démarrage, vous devez utiliser l'attribut OwinStartup.

par exemple:

 [assembly: OwinStartup(typeof(MyNamespace.MyStartupClass))]
 

4voto

user1530570 Points 61

Mon Démarrage.cs n'irait pas jusqu'à ce que j'ai supprimé cette ligne sur le Web.config (dans le dossier racine)

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X