我正在尝试在启动期间拨打此电话一次。
var assemblies = BuildManager.GetReferencedAssemblies();
这是从MVC 4项目中带来的。
从Startup.ConfigureServices或Startup.Configure调用它会抛出异常;
System.InvalidOperationException 在应用程序的启动前初始化阶段,无法调用此方法。
在vNext启动管道中,我可以开始进行与此类似的调用,与预启动初始化不冲突。
单独提问,我是否应该明确调用BuildManager.GetReferencedAssemblies();在启动期间。调用的原因是找到此应用程序的所有程序集,查找应用程序中的所有区域,查找应用程序中的所有控制器,并对所有这些控制器施加过滤器。在过去,我在每个控制器上都强加了Auth过滤器,并且不依赖开发人员将[Authorize]属性放在操作上。它突然出现了安全漏洞。开发人员不得不通过配置选择退出这些操作,并引入了文档化的安全审计跟踪。
我研究了中间件的东西,但我喜欢预先做好所有的连接,然后让应用程序框架按照自己喜欢的方式工作。
其他人建议使用OWIN,但我想遵循vNext约定,如果可能的话,不要做任何混合和匹配。
另一个建议是将Global.asax放回等等。
感谢任何与vNext方式一致的方向。
答案 0 :(得分:0)
您可以收听ApplicationStarted事件。试试这个
public void Configure(IApplicationBuilder app, IApplicationLifetime lifetime) {
lifetime.ApplicationStarted.Register(() => {
// Your code goes here
});
}