J'ai une solution ASP.NET Web Api qui ne contient pas de classe Startup.cs. Je suppose que c'est parce que la solution n'a pas été créée en tant que solution MVC.
Tout le code pour le démarrage est défini dans le fichier Global.asax.cs 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, je souhaite maintenant avoir le support de OAuth et toute la documentation que j'ai trouvée est basée sur un fichier Startup.cs de la classe suivante
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
}
Est-il possible d'ajouter simplement cette nouvelle classe dans ma solution et la solution continuera à fonctionner?
Y aura-t-il des conflits avec la classe Global.asax.cs?
EDIT : Après avoir ajouté la classe Startup.cs, je ne peux plus atteindre le point d'arrêt que j'ai ajouté ...
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?
Startup.cs fait partie du package d'autorisation OWIN. Si le paquet n'est pas ajouté via NuGet, je ne peux pas garantir qu'il fonctionnerait. Cependant, à en juger par cette réponse, cela pourrait quand même fonctionner en fonction de votre environnement.
https://stackoverflow.com/a/24678109/6442626
Réponse courte: Si vous avez installé Microsoft.Owin.Security.OAuth de NuGet, cela devrait être bon. Sinon, vous devez l'installer.
Mise à jour: pour que MVC appelle la méthode de configuration au démarrage, vous devez également installer le package Microsoft.Owin.Host.SystemWeb de NuGet. Il n'y a rien de spécial à modifier avec web.config, IIS détectera automatiquement l'hôte Owin et le chargera pour vous.
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 le faire , mais si vous souhaitez utiliser une classe de démarrage, vous devez utiliser l'attribut OwinStartup.
par exemple:
[Assembly: OwinStartup(typeof(MyNamespace.MyStartupClass))]
Mon fichier Startup.cs ne s'exécutera pas tant que je n'aurai pas supprimé cette ligne sur Web.config (dans le dossier racine).
<add key="owin:AutomaticAppStartup" value="false" />