Сайт ASP.NET MVC 3 загружается чрезвычайно медленно

Я действительно не знаю, с чего начать с этого вопроса, но сайт, над которым я работаю, иногда очень медленно загружается. Особенно после сборки, но не всегда. Обычно мне приходится обновлять страницу 5-10 раз, прежде чем она действительно появится. Думаю, я пытаюсь понять, с чего именно мне следует начать искать.

ASP.NET MVC 3 Ninject AutoMapper Entity Framework Code First 4.1 SQL Server 2008 Razor

ОБНОВЛЕНИЯ

Что касается некоторых вопросов, он может выполнять такую ​​долгую загрузку на каждой странице, но после загрузки довольно быстро на всех страницах.

После публикации этого сообщения и получения ваших ответов я запустил приложение, оно все еще загружается и, вероятно, никогда не загрузится, если я не нажму кнопку перезагрузки в браузере.

Нет кеширования, и модели EF невелики.

Я использую Razor и Visual Studio 2010 с 6 ГБ памяти и процессором I7.

При отладке я использую IIS Express и веб-сервер по умолчанию. Он также делает это в IIS7 на главном сервере.

Я могу заглянуть в MVC Profiler и Glimpse, чтобы узнать, что я могу найти.

Ниже у меня есть код, который запускается, когда попадает на домашнюю страницу. Я бы сказал, что он никогда не загружается, когда я впервые запускаю сервер. Я поставил точку останова на модели var, которая никогда не срабатывает. Если я перезагружу страницу, то так и будет.

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();
        }
    }
20
задан Mike Flynn 15 December 2011 в 20:52
поделиться