如何手动注册ASP.NET MVC控制器?

时间:2015-05-11 18:45:18

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

我的ASP.NET MVC应用程序启动速度非常慢(首次渲染时最少20秒)。它在bin文件夹中有批次的程序集。

我理解运行时扫描所有程序集,查找Controller类。我想这种反射会很慢。我们在共享主机上,所以第一次加载非常慢,并且有很多首次加载,因为应用程序池经常被回收。

我见过很多使用IOC容器手动注册控制器的例子。我们不使用IOC。

那么,如何手动注册控制器呢?我想在Application_Start或类似的事情中这样做。

关于某些评论的

修改。我知道这不会完全解决慢启动问题。但它可能有所帮助。所以没有必要阻止我尝试,因为我们决定尝试:)。

1 个答案:

答案 0 :(得分:4)

您需要覆盖DefaultControllerFactory。然后将其设置为 Application_Start

ControllerBuilder.Current.SetControllerFactory(typeof (CustomControllerFactory));

示例 -

仅供参考: Mark Seemann (author of Dependency Injection in .Net)"创建对象实例是.NET Framework非常快速的事情。您的应用程序可能出现的任何性能瓶颈都会出现在其他地方。"