我的ASP.NET MVC应用程序启动非常慢(至少20秒直到第一次渲染)。它在bin文件夹中有很多程序集。
我了解运行时扫描所有程序集,寻找Controller类。我想这种反射会很慢。我们在共享主机上,所以第一个加载非常慢,并且有大量的第一个加载,因为应用程序池经常被回收。
我看到了很多使用IOC容器手动注册控制器的例子。我们不使用国际奥委会。
那么,如何手动注册控制器呢?我想在Application_Start上做这个,或者类似的事情。
编辑中的一些评论。我知道这不能完全解决慢速启动的问题。但这可能会有帮助。所以劝阻我不要尝试是没有意义的,因为我们决定尝试:)。
发布于 2015-05-11 21:43:52
您需要覆盖DefaultControllerFactory。然后在Application_Start.设置它
ControllerBuilder.Current.SetControllerFactory(typeof (CustomControllerFactory));例子-
FYI: Mark (.Net中的依赖注入一书作者)说:“创建对象实例的速度非常快,应用程序可能遇到的任何性能瓶颈都会出现在其他地方。”
https://stackoverflow.com/questions/30175291
复制相似问题