исключение iisnode, когда приложение Node.JS запускается из пакета - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь перенести приложение NodeJS из службы приложений Linux в службу приложений Windows, но продолжаю получать исключение IIS 500.1002 при запуске приложения из пакета (Azure Настройка приложения называется WEBSITE_RUN_FROM_PACKAGE ).

Приложение отлично работает на Linux Службе приложений, локально на Windows (с Узлом) и на виртуальной машине с Windows Сервером, поэтому мы можем исключить любую проблему с кодом приложения. В Azure, Windows службы приложений работают за IIS, и модуль iisnode «передает» запрос приложению Node.

Все работает как положено, если я разверну / скопирую свое приложение в папку wwwroot. Однако, как упоминалось ранее, я настроил службу приложений с настройкой WEBSITE_RUN_FROM_PACKAGE (см. https://docs.microsoft.com/en-us/azure/app-service/deploy-run-package).

Запуск непосредственно из пакета делает wwwroot доступным только для чтения. Ваше приложение получит сообщение об ошибке, если оно попытается записать файлы в этот каталог.

Без опции «запустить из пакета» развертывание приложения занимает более часа (в основном из-за копирования 40 000 + файлы из папки node_module). Развертывание и запуск приложения из zip-файла занимает примерно 5 минут!


И, наконец, вопрос: кажется, что IIS взломал sh, поскольку папка wwwroot доступна только для чтения, Кажется, что iisnode является виновником, но я не могу понять, зачем ему нужно что-то писать / создавать в папке wwwroot, когда его роль заключается просто в передаче запроса на Node. У кого-нибудь есть способ предотвратить такое поведение?

...