我真的不知道从哪里开始问这个问题,但是我正在工作的网站有时加载页面非常缓慢。尤其是在构建之后,但并不总是如此。通常情况下,在页面实际显示之前,我必须刷新页面5-10次。我想知道应该从哪里开始寻找问题。
ASP.NET MVC 3 Ninject AutoMapper Entity Framework Code First 4.1 SQL Server 2008 Razor
更新
关于一些问题,它可以在每个页面上长时间加载,但在加载完成后,所有页面都变得相当迅速。
发帖后,我启动了应用程序,它仍在加载中,除非我点击浏览器上的重新加载,否则可能永远不会加载。
没有缓存,EF模型也不是很大。
我使用Razor和Visual Studio 2010,具有6GB内存和I7处理器。
调试时,我使用IIS Express和默认Web服务器。 它也会在主服务器上的IIS7上出现此问题。
我可能会查看MVC Profiler和Glimpse,看看我能找到什么。
下面是当首页被访问时运行的一些代码。我会说当我第一次启动服务器时,它永远不会加载。我在var model处设置了断点,但它从未被命中。如果我重新加载页面,则会命中。
public ActionResult Index()
{
var model = new HomeViewModel();
model.RecentHeadlines = _headlineService.GetHeadlines(1, Config.RecentHeadlinesPageSize, string.Empty);
return View(model);
}
以下是我的数据上下文设置。
public class DatabaseFactory : Disposable, IDatabaseFactory
{
private DataContext _dataContext;
public DataContext Get()
{
return _dataContext ?? (_dataContext = new DataContext());
}
protected override void DisposeCore()
{
if (_dataContext != null)
_dataContext.Dispose();
}
}
public class Disposable : IDisposable
{
private bool isDisposed;
~Disposable()
{
Dispose(false);
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
private void Dispose(bool disposing)
{
if (!isDisposed && disposing)
{
DisposeCore();
}
isDisposed = true;
}
protected virtual void DisposeCore()
{
}
}
public class UnitOfWork : IUnitOfWork
{
private readonly IDatabaseFactory _databaseFactory;
private DataContext _dataContext;
public UnitOfWork(IDatabaseFactory databaseFactory)
{
_databaseFactory = databaseFactory;
}
protected DataContext DataContext
{
get { return _dataContext ?? (_dataContext = _databaseFactory.Get()); }
}
public void Commit()
{
DataContext.Commit();
}
}