ASP.Net MVC4应用程序运行缓慢

时间:2013-06-28 12:00:49

标签: asp.net-mvc-4

我在ASP.NET中创建了这个Web应用程序。该应用程序最初是在VS2010上的MVC3中开发的,但最近我们已将其迁移到VS2012 MVC4。

迁移的原因是我们需要使用MVC4和OS win 8支持的SignalR。 (SignalR在早期版本中工作,我知道这一点,但它使用了回退方法。因此我们必须迁移。)

我们也在使用Fluent Nhibernate。它目前在IIS 8上本地托管。

现在问题就在这里。 应用程序第一次完美加载。实际上,它是针对前几个请求而这样做的。但经过几次请求后回复太慢了。有时它只是崩溃。刷新总是崩溃。

还有其他人遇到过这样的问题吗?

任何帮助都会非常有用。谢谢你:)

编辑:

这个人在这里面对的是什么,但只有在几个请求之后它才会发生 Why is the ASP.NET/Visual Studio Web Development Server so slow?

1 个答案:

答案 0 :(得分:2)

在没有看到任何代码的情况下我只能猜到,但是我遇到了一个问题,即使用Fluent NHibernate运行的应用程序逐渐变慢。这可能是你可能做错的两件事:

确保整个应用程序的会话工厂都存在。例如,我有以下代码(使用Microsoft Unity)来注册我的依赖项:

builderContext.Container.RegisterType<ISessionFactory>(new ContainerControlledLifetimeManager(), new InjectionFactory(c => {
    return BuildSessionFactory();
}));

其次确保在每次请求后关闭NHibernate会话。例如,假设您将会话存储在HttpContext.Current.Items中,然后在Application_EndRequest事件中(在Global.asax文件中),您会说:

var session = HttpContext.Current.Items["NameOfCache"] as ISession;

if (session != null && session.IsOpen)
    session.Close();

第二个更有可能导致应用程序逐渐变慢。我希望这会有所帮助。