Мы столкнулись с интересной проблемой, с которой я раньше не сталкивался. У нас есть крупномасштабный производственный проект веб-приложения ASP.NET 3.5 с пакетом обновления 1 (SP1) в Visual Studio 2008 с пакетом обновления 1 (SP1), который компилируется и развертывается с использованием проекта развертывания веб-сайта. В течение прошлого года все работало нормально, пока после вчерашней проверки приложение не начало критически отказывать с _ 1_.
Рассматриваемая регистрация не меняет ничего особенного, и ошибки исходят из областей приложения, которые даже не изменились. Используя Reflector, мы проверили методы, вызывающие нарушение, на предмет наличия в коде строк мусора (какой .NET Рефлектор юмористически интерпретирован как китайские иероглифы). Мы постоянно воспроизводили это на нескольких машинах, поэтому, похоже, это не связано с оборудованием.
Дальнейшая проверка показала, что эти строки мусора не существуют в сборках, используемых в качестве входных данных для aspnet_merge.exe во время развертывания.
aspnet_merge.exe / Свойства выходных сборок проекта веб-развертывания:
- Объединить все выходы в единую сборку
- Объедините выходные данные каждой отдельной папки с собственной сборкой
- Объедините все страницы и управляйте выходными данными в единую сборку
- Создайте отдельную сборку для каждой страницы и управляйте выводом
В свойствах проекта веб-развертывания, если мы установим для параметров слияния первый вариант («Объединить все выходные данные в одну сборку»), мы столкнемся с проблемой, но все остальные параметры работают отлично!
Мой вопрос: кто-нибудь знает, почему это происходит? Есть ли ограничение на размер возможностей aspnet_merge.exe (итоговая объединенная DLL составляет около 19,3 МБ)? Есть ли другие известные проблемы с объединением вывода WAP?
Я был бы рад, если бы какие-либо гуру формата Assembly / aspnet_merge.exe знали о подобных ограничениях. Мне кажется, что сборка размером 25 МБ, хоть и большая, но не возмутительна.