vNext Application_Start()等效

时间:2016-01-26 16:23:26

标签: c# asp.net asp.net-core asp.net-core-mvc

我正在尝试在启动期间拨打此电话一次。

var assemblies = BuildManager.GetReferencedAssemblies();

这是从MVC 4项目中带来的。

从Startup.ConfigureServices或Startup.Configure调用它会抛出异常;

  

System.InvalidOperationException   在应用程序的启动前初始化阶段,无法调用此方法。

  1. 在vNext启动管道中,我可以开始进行与此类似的调用,与预启动初始化不冲突。

  2. 单独提问,我是否应该明确调用BuildManager.GetReferencedAssemblies();在启动期间。调用的原因是找到此应用程序的所有程序集,查找应用程序中的所有区域,查找应用程序中的所有控制器,并对所有这些控制器施加过滤器。在过去,我在每个控制器上都强加了Auth过滤器,并且不依赖开发人员将[Authorize]属性放在操作上。它突然出现了安全漏洞。开发人员不得不通过配置选择退出这些操作,并引入了文档化的安全审计跟踪。

  3. 我研究了中间件的东西,但我喜欢预先做好所有的连接,然后让应用程序框架按照自己喜欢的方式工作。

    其他人建议使用OWIN,但我想遵循vNext约定,如果可能的话,不要做任何混合和匹配。

    另一个建议是将Global.asax放回等等。

    感谢任何与vNext方式一致的方向。

1 个答案:

答案 0 :(得分:0)

您可以收听ApplicationStarted事件。试试这个

public void Configure(IApplicationBuilder app, IApplicationLifetime lifetime) {
    lifetime.ApplicationStarted.Register(() => {
        // Your code goes here
    });
}