Компилятор Visual Basi c (vb c .exe) израсходовал всю системную память (RAM и Virtual) - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть веб-приложение asp. net, использующее VB в Visual Studio 2019. Проект компилируется и работает нормально. Мы публикуем sh файлы и помещаем их в папку www root, отлично работает.

У нас есть один файл aspx, который стал очень большим. Это более 5000 строк, 423 КБ. Это сработало бы при нажатии на aspx скомпилированно, но затопило бы компилятор roselyn при доступе к опубликованному aspx.

BC31498: длина константы String превышает текущий предел памяти. Попробуйте разбить строку на несколько констант.

Мы удалили компилятор rosyln из корзины и ссылку в web.config. Это привело к тому, что NET использовал C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ vb c .exe для его компиляции, мы получили бы замедление, и тогда он работал бы, и сервер вернулся бы. Я должен был создать и кэшировать файлы, которые я предполагаю.

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

C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ vb c .exe не удалось выполнить следующую ошибку.

Ошибка сервера в приложении '/'.

Ошибка компиляции

Описание: Произошла ошибка во время компиляции ресурса, необходимого для обслуживания этого запроса. Пожалуйста, просмотрите следующие подробные c подробности ошибки и измените исходный код соответствующим образом.

Сообщение об ошибке компилятора: Ошибка компилятора с кодом ошибки -2147023441.

Показать подробный вывод компилятора:

c: \ windows \ system32 \ inetsrv> "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ vb c .exe" / t: library / utf8output .... ..

Разве вы не можете иметь большие файлы aspx? Слишком много тегов div? Я очистил временную папку в папке. net framework. Нет. NET несоответствия версий. Опубликованный код также отлично работает на непроизводственной машине с ОГРОМНЫМ ОЗУ (48 ГБ).

Пожалуйста, помогите, спасибо.

1 Ответ

1 голос
/ 19 февраля 2020

Вы столкнулись с этой проблемой в Roslyn. Собственный компилятор (из C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319) может обрабатывать строки немного большего размера, но проблема та же. Используемый вами строковый литерал слишком велик для компиляции. Я рекомендую вам использовать файлы ресурсов (.resx) вместо строковых литералов. Это должно позволить вашей странице быть любого размера.

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