Там ограничения размера к формату блока.NET?

Мы столкнулись с интересной проблемой, которую я не испытал прежде. У нас есть крупномасштабное производство ASP.NET 3,5 веб-приложения SP1 Проект в Visual Studio 2008 SP1, который получает скомпилированное и развернутое использование Проекта Развертывания Веб-сайта. Все хорошо работало в течение прошлого года, до окончания регистрации вчера приложение, запущенное, критически перестав работать с BadImageFormatException.

Рассматриваемая регистрация не изменяет ничего особенно специального, и ошибки прибывают из областей приложения, даже не измененного. Используя Отражатель мы осмотрели незаконные методы, чтобы найти, что были строки мусора в коде (который Отражатель.NET шутливо интерпретировал как китайские символы). Мы последовательно воспроизводили это на нескольких машинах, таким образом, это, кажется, не связано с аппаратными средствами.

Дальнейший контроль показал, что те строки мусора не существовали в блоках, используемых в качестве исходных данных к aspnet_merge.exe во время развертывания.

aspnet_merge.exe / веб-Проект Развертывания Выведенные Свойства блоков:

  • Объедините все выводы с единственным блоком
  • Объедините каждый отдельный вывод папки с его собственным блоком
  • Объедините все страницы и управляйте выводами к единственному блоку
  • Создайте отдельный блок для каждой страницы и управляйте выводом

В веб-свойствах проекта развертывания, если мы устанавливаем опции слияния на первую опцию ("Объединяют все выводы с единственным блоком") мы испытываем проблему, все же все другие опции работают отлично!

Мой вопрос: кто-либо знает, почему это происходит? Существует ли предел размера поддержке aspnet_merge.exe (получающийся объединенный DLL составляет приблизительно 19,3 МБ)? Там кто-либо другой известен проблемы со слиянием вывода WAP?

Я любил бы его, если какой-либо формат блока / гуру aspnet_merge.exe знает о каких-либо таких ограничениях как это. Кажется мне как блок 25 МБ, в то время как большой, не возмутительно.

6
задан Martin 20 March 2010 в 15:42
поделиться

2 ответа

Вы можете попробовать запустить на нем PEVerify и посмотреть, что у вас получится.

Для меня это звучит как проблема с кодировкой ... но я не уверен, почему это могло произойти. Технически существует ограничение на количество метаданных, которые могут поместиться в таблицы метаданных в сборке, но я сомневаюсь, что это проблема.

Вы можете увидеть размер таблиц метаданных, если откроете exe в Ildasm , вы можете попробовать посмотреть статистику (View-> Statistics) или количество таблиц метаданных, равное 2 пошаговый процесс: 1. Вид-> Метаинфо-> Необработанные: Количество, размеры 2. Нажмите Ctrl + M

2
ответ дан 17 December 2019 в 20:33
поделиться

Не возникает ли исключение BadImageFormatException при попытке запустить код x64 на x86?

0
ответ дан 17 December 2019 в 20:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: