2009-04-19 2 views
3

У меня есть приложение ASP.NET 3.5 sp1, которое находится в разработке в Cassini. Приложение включает файл global.asax, который должен запускать некоторый код - он отлично работает в Cassini, но в IIS отладчик никогда не ударяет по этой функции. Почему этот код не работает?Почему Application_Start работает в Cassini, но не в IIS7?

ответ

2

Возможно, в Cassini приложение запускается при запуске Cassini. В II7, службе, приложение уже запущено, и когда вы запускаете отладчик, VS прикрепляет только отладчик. Вы можете попытаться запустить отладчик и переработать пул в консоли IIS, чтобы увидеть, как приложение перезапустилось?

1

Вы вручную прикрепляете отладчик к процессу w3wp.exe? Скорее всего, вы слишком поздно, и Application_Start уже работает к моменту присоединения отладчика.

+0

Я нахожу F5 в Visual Studio, чтобы получить приложение. Я видел эту работу в других проектах, поэтому это не «слишком поздно». –

1

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

0

Я вижу ту же проблему с веб-проектом WCF, работающим в IIS7. Самая первая строка кода в Application_Start() - это запись в журнале, и я никогда не получаю ее. Кроме того, другие объекты, которые должны быть инициализированы на Application_Start, никогда не создаются, а остальная часть моего кода терпит неудачу из-за этого. Кто-нибудь когда-нибудь что-то замечает? Он отлично работает в Cassini ...

+0

Попробуйте этот grue - в файле global.asax.cs определите приватную переменную на уровне класса и добавьте ее в конструктор. Видеть на каком-то штате, кажется, исправить это время от времени. –