Ich erstelle eine ASP.NET Web API mit .NET 4.5.2. Die API muss beim Start eine Verbindung zu einem Runspace herstellen. Ich habe Fragen darüber, wann diese Startup.Configuration-Methode tatsächlich ausgeführt wird. Es scheint nicht zu laufen, wenn ich die Website oder den App-Pool starte. Es scheint zu warten, bis zum ersten Mal jemand versucht, auf die Website zuzugreifen. Ist das richtig? Auch scheint es zu zufälligen Zeiten wieder zu laufen. Ich habe es nach 2 Stunden, 4 Stunden und 16 Stunden gesehen. Es ergibt keinen Sinn. Kann mir jemand aufklären, wann diese Methoden laufen sollen? Außerdem, wenn Sie einen Vorschlag für einen besseren Ort haben, um sie zu setzen, da ich möchte, dass es ein freigegebener Runspace für alle Verbindungen ist und ich möchte, dass es ausgeführt wird, bevor irgendjemand versucht, sich mit der API zu verbinden. Vielleicht ein separater Service?ASP.NET Web API Startfragen
Würde es sich auch lohnen, in ASP.NET CORE zu suchen? Ich brauche es nicht für etwas anderes als IIS, aber wenn es einen Vorteil für die Verwendung von CORE gibt, bin ich an einem Punkt, wo es leicht zu wechseln ist.
public partial class Startup
{
public Cache GlobalCache;
public static PowershellRunspace PSRunspace;
public static ActiveDirectory ADObjects = new ActiveDirectory();
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
GlobalCache = new Cache();
AppLog log = new AppLog();
log.InfoLog("Starting PowerShell Runspace in Hangfire...", true);
GlobalConfiguration.Configuration.UseSqlServerStorage("Hangfire");
BackgroundJob.Enqueue(() => log.InfoLog("Hangfire started!", true));
BackgroundJob.Enqueue(() => ADObjects.Startup(true));
BackgroundJob.Enqueue(() => StaticRunspace.Start());
app.UseHangfireDashboard();
app.UseHangfireServer();
}
}
Danke, das erklärt alles, was ich gesehen habe. –