Node.js в статусе веб-сайта Azure 500

Я пытаюсь запустить сайт node.js (meanjs) в Azure. Сайт работает в моей локальной среде без ошибок. Но после развертывания, когда я захожу на свой сайт, я получаю ошибку 500 на вкладке сети в Chrome. Явных ошибок для меня нет.

Я использовал https://groups.google.com/forum/#!topic/meanjs/LrHmE43RSvA, чтобы узнать, как настроить его с помощью azure cli.

Он также настроен для развертывания из моего github.

На портале Azure развертывание не завершается ошибкой. Я прочитал журнал и попытался найти проблему, но едва ли знаю, с чего начать. Читая это, я нахожу некоторые вещи, которые кажутся мне странными, например. (Журнал длинный и превышает лимит символов, иначе я бы опубликовал его весь.)

MSBUILD: ошибка MSB3428: не удалось загрузить компонент Visual C++ VCBuild.exe. Чтобы исправить это, 1) установите .NET Framework 2.0 SDK, 2) установите Microsoft Visual Studio 2005 или 3) добавьте расположение компонента в системный путь, если он установлен в другом месте. [D:\home\site\repository\node_modules\bson\build\binding.sln]

и есть много

npm WARN неудовлетворенная зависимость

Затем все они обрабатываются, файлы копируются в wwwroot и успешно завершаются.

Некоторые из вещей, которые я пробовал, - это изменение ветки развертывания, удаление веб-сайта и запуск заново. У меня есть

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

Спасибо за любую помощь.

Редактировать**

Я добавил bson в .gitignore и получил новую ошибку. Я также получаю некоторые новые ошибки ниже, что изменилось.

[email protected] install D:\home\site\repository\node_modules\bson (node-gyp перестроить 2> builderror.log) || (выход 0)

MSBUILD: ошибка MSB3428: не удалось загрузить компонент Visual C++ VCBuild.exe. Чтобы исправить это, 1) установите .NET Framework 2.0 SDK, 2) установите Microsoft Visual Studio 2005 или 3) добавьте расположение компонента в системный путь, если он установлен в другом месте.

[D:\home\site\repository\node_modules\bson\build\binding.sln]

npm WARN предпочитает, чтобы глобальный [email protected] был установлен с параметром -g npm ERR! Ошибка: ENOENT, chmod ›'D:\home\site\repository\node_modules\flatiron\bin\flatiron'

нпм ОШИБКА! Если вам нужна помощь, вы можете пожаловаться на этот весь журнал,

Я также добавил в каталог .npmignore, но он пуст. Я попытался добавить как bson, так и flatiron в .gitignore, но это не изменило ошибку.


person pieperz    schedule 27.01.2015    source источник
comment
Обычно хорошей отправной точкой является первая ошибка в журнале. Ваша опубликованная ошибка говорит сама за себя: что-то, что строится, зависит от VCBuild, но машина не настроена, чтобы сделать это доступным. Эта ошибка даже достаточно любезна, чтобы дать вам 3 возможных решения в сообщении об ошибке.   -  person Greg D    schedule 27.01.2015


Ответы (1)


Из опубликованного вами журнала я вижу, что произошла ошибка, когда azure попыталась установить модуль NPM с именем bson во время развертывания, потому что на виртуальной машине, на которой находится ваш веб-сайт azure, нет компилятора VC++.

Он хорошо работал на вашем компьютере, так как у вас установлен VC++.

Чтобы исправить это, вам лучше скомпилировать этот модуль (bson) на своем компьютере (x86 или x64 в зависимости от того, какой из них выбран на вашем веб-сайте Azure), сделайте этот модуль включенным в папку node_modules на вашем .gitignore, чтобы он загружался, когда вы зафиксируйте свой код.

У меня есть сообщение в блоге, в котором упоминается эта проблема, и я использовал Node.js SQL Server Driver в качестве примера. Он также нуждается в компиляции VC++. http://blog.shaunxu.me/archive/2012/11/16/install-npm-packages-automatically-for-node.js-on-windows-azure-web.aspx

person Shaun Xu    schedule 28.01.2015
comment
Это немного изменило мою ошибку, вот итоговый журнал - person pieperz; 28.01.2015