1

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

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

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

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

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

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

编辑:

就像这里的这个人所面临的那样,但只有在几个请求之后才会发生在我身上 为什么 ASP.NET/Visual Studio Web 开发服务器这么慢?

4

1 回答 1

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();

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

于 2013-06-28T12:14:14.417 回答