Realmente no sé por dónde empezar con esta pregunta, pero el sitio en el que estoy trabajando a veces tiene cargas de página muy lentas. Especialmente después de hacer una construcción, pero no siempre. Normalmente tengo que actualizar la página 5-10 veces antes de que realmente aparezca. Creo que estoy tratando de ver dónde exactamente debería comenzar a mirar.ASP.NET MVC 3 La carga del sitio es extremadamente lenta
ASP.NET MVC 3 Ninject AutoMapper entidad Código Marco Primera 4.1 SQL Server 2008 Razor
ACTUALIZACIONES
En cuanto a algunas de las preguntas, se puede hacer esto en cada tiempo de carga página, pero después de que se carga es bastante rápido en todas las páginas.
Después de publicar esto y conseguir sus respuestas que inicia la aplicación y todavía se está cargando y probablemente no volverá a cargar a menos que haga clic en el navegador de recarga.
No hay almacenamiento en caché, y los modelos EF no son enormes.
estoy usando la maquinilla de afeitar y Visual Studio 2010 con 6 GB de memoria y un procesador I7.
Estoy usando IIS Express y el servidor web predeterminado cuando se depura. También hace esto en IIS7 en el servidor principal.
Puedo consultar MVC Profiler y Glimpse para ver qué puedo encontrar.
Debajo tengo un código que se ejecuta cuando llega a la página de inicio. Yo diría que nunca se carga cuando inicio el servidor por primera vez. Puse un punto de quiebre en el modelo var que nunca se golpea. Si vuelvo a cargar la página, entonces lo hace.
public ActionResult Index()
{
var model = new HomeViewModel();
model.RecentHeadlines = _headlineService.GetHeadlines(1, Config.RecentHeadlinesPageSize, string.Empty);
return View(model);
}
A continuación se muestra la configuración de mi entorno de datos también.
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();
}
}
Necesita más detalles. ¿Esto es para golpear la primera página? Cada página? ¿Solo ciertas páginas? ¿Sucede de manera constante o esporádica? – Lester
¿Qué tan grande es tu modelo EF? ¿Hay algún almacenamiento en caché en su aplicación? ¿Es especialmente después de la compilación o siempre cuando accede a la aplicación después de la compilación por primera vez (reinicio de la aplicación)? –
También podría deberse a una máquina lenta. ¿Cuanta memoria tienes? ¿Cuántos núcleos de CPU? ¿Es una computadora portátil o una estación de trabajo? – danludwig