Dre*_*ker 9 c# asp.net initialization nancy
我奋力明白为什么南希不接受约1分钟的请求.我有大约60个端点,所有这些都很快初始化,因此所有模块都得到处理.
对于这个有常见的原因?或者有没有办法追踪正在发生的事情?
编辑
记录应用程序启动
App Start 4/15/2014 11:03:48 AM
App Start Complete 4/15/2014 11:03:48 AM
Bootstrap 4/15/2014 11:04:19 AM
Module 3 4/15/2014 11:06:37 AM
Module 1 4/15/2014 11:06:37 AM
Module 2 4/15/2014 11:06:37 AM
Module 1 4/15/2014 11:06:37 AM
Module 1 4/15/2014 11:06:37 AM
Module 1 4/15/2014 11:06:37 AM
Module 1 4/15/2014 11:06:37 AM
Module 1 4/15/2014 11:06:37 AM
Module 1 4/15/2014 11:06:38 AM
Module 1 4/15/2014 11:06:38 AM
Module 1 4/15/2014 11:06:38 AM
Run Code Online (Sandbox Code Playgroud)
从时间可以看出,在引导之前以及在调用模块之前存在延迟.
编辑2
我的配置是Nancy(v0.22.2从源代码构建,因为需要强密钥而不需要更改代码)ASP.NET 4.5使用Web窗体.使用Visual Studio 2013 IDE作为
我想我发现了问题所在.问题在于Nancy使用的TinyIoC容器中的AutoRegister功能.
基本上在启动时(第一个请求)它会扫描AppDomain的每个程序集以注册依赖项.这个过程非常缓慢:https://github.com/NancyFx/Nancy/issues/643
解决方案是手动注册您的依赖项,如下所示:https://github.com/NancyFx/Nancy/wiki/Bootstrapping-nancy
基本上你只需要在你的AspNet项目中创建一个继承自DefaultNancyAspNetBootstrapper的类并覆盖ConfigureApplicationContainer方法:
public class Bootstrapper : DefaultNancyAspNetBootstrapper
{
protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
// Register our app dependency as a normal singleton
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助,
| 归档时间: |
|
| 查看次数: |
2171 次 |
| 最近记录: |