我正在使用.NET 4.5.2创建ASP.NET Web API。 API需要在启动时连接到运行空间。我对这个Startup.Configuration方法实际运行的时间有疑问。当我启动网站或应用程序池时,它似乎没有运行。它似乎要等到第一次有人试图访问该网站。它是否正确?此外,它似乎在随机时间再次运行。我看过它在2小时,4小时和16小时后运行。它没有任何意义。当这些方法应该运行时,有人可以为我清理吗?另外,如果你有一个更好的地方给出它的建议,我希望它是所有连接的共享运行空间,并且我希望它在任何人尝试连接到API之前运行。也许是一个单独的服务?
此外,是否值得研究ASP.NET CORE?我不需要它在IIS以外的任何东西上运行,但是如果使用CORE有好处,那么我很容易切换。
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();
}
}
答案 0 :(得分:1)
假设您在IIS中运行此应用程序(而非自托管),则适用以下规则:
Configuration
方法运行一次。因此,您所看到的行为可能是由于应用程序的不频繁访问以及IIS默认值。如果您想查看或配置设置,可以进入IIS,右键单击应用程序池,然后选择“高级设置”。