ASP.NET динамическая компиляция с несколькими веб-серверами - PullRequest
0 голосов
/ 02 ноября 2018

Инфраструктура:

  • Проект веб-сайта ASP.NET 4.6.1 (веб-формы)
  • 2 веб-сервера за балансировщиком нагрузки
  • Redis на AWS в качестве поставщика состояния сеанса

Проблема:

Динамическая компиляция происходит на каждом сервере, создавая временные файлы asp.net с разными именами. Иногда постбэк попадает на сервер, отличный от предыдущего запроса, и я получаю FileNotFoundException - Could not load file or assembly 'PageName.aspx.551d078a.agzxzct4. Этот файл существует на первом сервере, но не на втором.

Вопрос:

Как я могу развернуть свой проект веб-сайта веб-форм на нескольких веб-серверах и разрешить каждый запрос на любой сервер?

Я пытался:

  • Предварительная компиляция с aspnet_compiler. Я использую VirtualPathProvider, поэтому предварительная компиляция отсутствует, согласно этим документам . Я получаю 404 на страницах, которые используют VirtualPathProvider

Ответы [ 2 ]

0 голосов
/ 08 марта 2019

У меня был enum, определенный внутри кода файла. Я просто переместил его в отдельный файл класса.

0 голосов
/ 02 ноября 2018

Я полагаю, у вас есть проект веб-сайта ASP.NET (не веб-приложения). При публикации проекта веб-сайта вы можете включить настройку объединения страниц и управления выходами в одну сборку вместо создания отдельной библиотеки DLL для каждой страницы, которая является настройкой по умолчанию.

На скриншоте на вкладке настроек диалога публикации вы можете нажать Настроить ссылку рядом с Precompile during publishing option и установить Advanced Precompile Settings

enter image description here

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