si avrà una linea simile come questo sul vostro progetto:
[assembly: OwinStartup(typeof(MyApp.Security.Authentication.Startup))]
La linea di cui sopra informa .NET la classe e metodo che verrà richiamato all'inizio.
alternativa è possibile configurare l'avvio in WebConfig
<appSettings>
...
<add key="owin:appStartup" value="MyApp.Security.Authentication.Startup" />
...
</appSettings>
Da quel punto, è possibile inserire i componenti Owin, così come tutti gli elementi di configurazione che normalmente luogo nel gestore eventi Global.asax Application_Start.
Delete Global.asax Classe: Se si utilizza OWIN, non c'è alcuna necessità di utilizzare classe Gobal.asax e accendere l'evento Application_Start, quindi è possibile eliminarlo.
Codice esempio di Startup.cs
using System.Web.Http;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(MyApp.Security.Authentication.Startup))]
namespace MyApp.Security.Authentication
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
HttpConfiguration config = new HttpConfiguration();
WebApiConfig.Register(config);
app.UseWebApi(config);
}
}
}
Modificato:
OWIN utilizza una classe di avvio in cui è possibile specificare i componenti che si desidera includere in cantiere applicazione. Se si guarda lo Katana source code, l'host Katana SystemWeb utilizza lo PreApplicationStartMethodAttribute per collegarsi all'avvio dell'applicazione. PreApplicationStartMethodAttribute, introdotto in .NET 4, consente di eseguire il codice in modo anticipato nella pipeline ASP.NET all'avvio dell'applicazione. Intendo molto presto, anche prima di Application_Start.
Controllare la sezione "Rilevamento della classe di avvio Owin" in questo link e questo link su PreApplicationStartMethodAttribute.
fonte
2014-08-31 21:38:49
Quindi, ASP.NET è stato aggiornato in modo da cercare l'avvio OWIN all'inizio? È possibile per me creare un framework simile a OWIN che possa agganciare le attività ASP.NET senza essere chiamato manualmente? –
Come ho capito, il pacchetto NuGet "Microsoft.Owin.Host.SystemWeb" è il responsabile di questa procedura di avvio. Questo pacchetto è necessario per il rilevamento dell'avvio nell'applicazione ospitata da IIS: http://www.asp.net/aspnet/overview/owin-and-katana/owin-startup-class-detection. –
La mia domanda è come l'hanno fatto, come Microsoft.Owin.Host.SystemWeb come hai detto, agganciare all'avvio di IIS e alle attività ASP.NET. –