У меня есть 15-летнее приложение для веб-форм, ориентированное на .NET 4.6.1, которое я поддерживаю, и недавно я обновил свой ноутбук до VS 15.9.3.В сборке этого приложения с версией 15.9.3 больше не запускается событие Application_Start
на производственных серверах (под управлением .NET 4.7.2).Он работает локально, просто отлично, и я часто развертывал производственные сборки с этого ноутбука до обновления.
Мой настольный компьютер все еще работает с VS 15.8, и производственная сборка там работает нормально.Исходный код на этих машинах одинаковый, отличаются только версии VS.
Симптомы и попытки устранения неполадок:
- Я удалил все старые файлы с производства и попытался настроить егос нуля.Без кубиков.
- Установите новое приложение под IIS, используя ту же сборку, но результат тот же.
- Ничего в журнале событий не регистрируется ни в каких ошибках, кроме ошибки, которая возникает, когда некоторыестраницы пытаются получить доступ к состоянию, инициализированному в
Application_Start
. - Я пытаюсь зарегистрировать некоторые сообщения и даже вызвать исключение прямо в начале
Application_Start
, и ничего не вижу, поэтому Application_Start
определенно не работает.
Что я могу сделать для дальнейшей диагностики проблемы?Я не смог ничего найти об этом в сети, или почему новейшая версия VS внезапно не работает.
Запретить какие-либо средства, какие-либо предложения по снижению версии VS вместо полной деинсталляции и переустановки старой VS?
Редактировать: теперь даже возврат моего ноутбука к VS 15.8.9 не откатил проблему, поэтому я разобрал сборку с обеих машин.Различий мало, в основном это номер сборки зависимой сборки, идентификатор версии модуля, комментарий, обозначающий «базу изображений»:
Не рабочая сборка:
// Image base: 0x055E0000
Рабочая сборка:
// Image base: 0x052D0000
Насколько я понимаю, ни одно из этих различий не должно иметь заметного эффекта.Затем я разобрал зависимую сборку, которая построена вместе с приложением ASP.NET, и у нее есть вышеуказанные различия и еще несколько, связанных со смещениями для инициализаторов статических полей.Поэтому я до сих пор не знаю, почему это может происходить.
Редактировать 2: похоже, проблема в последнем шаге aspnet_merge при попытке объединить предварительно скомпилированные веб-формы.При слиянии не удается найти какие-либо сборки для слияния, что позволяет предположить, что прекомпиляция могла быть неудачной.