Отладка ASP.NET MVC очень медленная - проблема с соединением SQL Server Express? - PullRequest
0 голосов
/ 02 июня 2009

Я занимаюсь разработкой приложения в ASP.NET MVC, используя SQL Server Express в качестве бэкэнда и Cassini в качестве веб-сервера разработки (тот, который поставляется с Visual Studio 2008).

Производительность приложения невероятно высокая (почти мгновенное переключение страниц). Однако вращение отладчика мучительно медленно; с момента нажатия клавиши F5 до появления страницы приветствия ASP.NET требуется около 30 секунд.

Я заметил аналогичную задержку при загрузке SQL Server Management Studio Express и еще одну задержку при первом открытии таблицы в моей базе данных для просмотра. После того, как я открываю свой первый стол, все идет гладко.

Учитывая поведение SQL Server Management Studio Express, я подозреваю, что проблема заключается в установлении первоначального подключения к SQL Server Express. Это действительно где проблема, и если так, как я могу это исправить?

Ответы [ 3 ]

1 голос
/ 02 июня 2009

Если при отладке это только медленно, то нужно учитывать несколько моментов:

  1. Приложения запускаются медленнее при отладке из-за предварительной компиляции, которую JITer должен делать всякий раз, когда сборки перестраиваются.
  2. Если вы каждый раз компилируете и отлаживаете, это может быть медленная компиляция, а не производительность вашего приложения. Сколько времени потребуется, чтобы браузер появился после нажатия клавиши F5? Если в вашем решении несколько проектов, для их создания потребуется время. Попробуйте настроить конфигурацию сборки, исключающую проекты классов (при необходимости обязательно перестройте их вручную)
  3. У меня не было никаких проблем с Кассини, но вы могли бы попробовать IIS только для усмешки.

Всего несколько мыслей, HTH.

0 голосов
/ 08 июня 2009

Я наконец решил проблему, перестроив свой стек TCP / IP, используя Netshell из окна командной строки. Очевидно, я получаю тайм-аут TCP / IP.

netsh int ip reset c:resetlog.txt 

http://support.microsoft.com/kb/299357

0 голосов
/ 02 июня 2009

Я бы проверил свойство auto_close в базе данных.

sp_dboption 'MyDatabaseName', 'autoclose'

Я думаю, что по умолчанию для экспресса может быть включено автопереключение. Если для этого параметра установлено значение ИСТИНА, сервер закроет базу данных и освободит от нее все ресурсы, если в базе данных нет пользователей. Если для параметра autoclose задано значение FALSE, сервер будет зависеть от базы данных, чтобы он был в состоянии готовности независимо от того, находятся ли пользователи в базе данных или нет.

См. здесь для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...