Как обновить версию iisnode в образе облачной службы Windows Azure
У меня был рабочий веб-сайт Windows Azure, на котором работало мое приложение node.js, и все работало нормально. Мне пришлось запустить собственный модуль node.js (волокна), что потребовало перехода на облачную службу Windows Azure. Я использовал мастер Convert to Azure Cloud Service, который создал веб-роль, которая позволила мне развернуть приложение в качестве облачной службы и запускать волокна в узле. Все идет нормально.
Мое приложение требует WebSockets, которые поддерживаются на веб-сайтах Azure (более или менее автоматически, когда вы включаете его из config UX). Я боролся за то, чтобы WebSockets работал с облачной службой в течение нескольких дней, и я решил, что моя проблема в том, что версия iisnode, которая по умолчанию запускается в облачной службе, слишком старая, чтобы поддерживать узел.js WebSockets в нормальный способ. Облачная служба устанавливает iisnode версии 1.21, а поддержка WebSockets в iisnode не появлялась до версии 2.0 (я понятия не имею, почему образ облачной службы использует эту жесткую старую версию iisnode).
Обратите внимание, что я не хочу использовать рабочую роль и слушать другой порт (который я собираю, как многие люди решают эту проблему).
К сожалению, я не могу понять, как установить более актуальную версию iisnode в моей облачной службе (я понимаю, что можно запустить установщик при запуске облачной службы (возможно, через setup_web.cmd), но это далеко как я получил.
Есть ли какие-либо указания на то, что мне нужно сделать, чтобы моя облачная служба Azure работала с более новой версией iisnode?
1 ответ
Чтобы обновить версию iisnode, установленную в размещенной службе Azure, вам необходимо:
- Загрузите новейший установщик x64 для iisnode с веб-сайта http://go.microsoft.com/?linkid=9784331
- Включите этот файл *.msi в пакет, который вы развертываете в размещенной службе.
- В вашем setup_web.cmd установите новый iisnode с
msiexec /i iisnode-full-iis7-v0.2.7-x64.msi /passive
, Это должно быть выполнено от имени администратора, но тогда я считаю, что setup_web.cmd уже работает от имени администратора.
В качестве альтернативы, для одноразовой установки вы можете просто установить TS на машину и установить ее вручную.
Кстати, что мешает вам использовать собственный модуль на веб-сайтах Windows Azure?