c# - netcore - owin startup webforms
ASP.NET Web Api-Startup.cs no existe (4)
Tengo una solución ASP.NET Web Api que no contiene una clase Startup.cs. Supongo que esto se debe a que la solución no se creó como una solución de MCV.
Todo el código para el inicio se define en el archivo Global.asax.cs como se puede ver a continuación.
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);
}
}
Sin embargo, ahora quiero tener soporte para OAuth y toda la documentación que he encontrado se basa en un Startup.cs con la siguiente clase
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
}
¿Es posible simplemente agregar esta nueva clase en mi solución y la solución seguirá funcionando?
¿Tendrá esto algún conflicto con la clase Global.asax.cs?
EDITAR : Después de agregar la clase Startup.cs, no puedo alcanzar el punto de interrupción que agregué a ella ...
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);
}
}
}
¿Tienes idea de lo que está pasando?
Mi startup.cs no se ejecutaría hasta que eliminara esta línea en web.config (en la carpeta raíz)
agregar clave = "owin: AutomaticAppStartup" valor = "falso"
Puedes agregar tu propia clase de inicio, pero debes asegurarte de que Owin la esté reconociendo. Hay varias formas de hacer esto , pero si desea usar una clase de Inicio, entonces necesita usar el atributo OwinStartup.
p.ej:
[assembly: OwinStartup(typeof(MyNamespace.MyStartupClass))]
Startup.cs es parte del paquete de autorización OWIN. Si el paquete no se agrega a través de NuGet, no puedo garantizar que funcione. Sin embargo, a juzgar por esta respuesta, podría funcionar de todos modos dependiendo de su entorno.
https://.com/a/24678109/6442626
Respuesta corta: si instaló Microsoft.Owin.Security.OAuth de NuGet, eso debería ser bueno. De lo contrario, es necesario instalarlo.
Actualización: para que MVC llame al método de configuración en el inicio, también necesita instalar el paquete Microsoft.Owin.Host.SystemWeb de NuGet. No hay nada especial que deba cambiar con web.config, IIS detectará automáticamente el host de Owin y lo cargará por usted.