PhantomJS как веб-работа в Azure
Я развернул веб-сайт asp.net mvc на лазури, и я пытаюсь развернуть phantomJS в качестве веб-задания для поддержки веб-сайта.
Я загрузил zip файл со всеми необходимыми зависимостями для запуска PhantomJS, и веб-задание начинается успешно после запуска моего пакетного файла. В журнале сообщается, что сервер запущен и работает @ 127.0.0.1:8080
. Однако, когда я пытаюсь попасть в приложение PhantomJS по адресу url 127.0.0.1:8080
на моем лазурном сайте, размещенном под someProject.azurewebsites.net
, он просто отключается без каких-либо других сообщений об ошибке.
В частности, я пытаюсь развернуть приложение phantomJS, на котором размещена веб-конечная точка (https://github.com/thelgevold/PhantomSnapshot), которая позволит мне конвертировать веб-страницы в pdf, если я передаю URL-адрес с сайта на процесс phantomJS.
Веб-сайт передаст URL-адрес PhantomJS, который ответит на него с помощью pdf файла, который можно загрузить. У меня уже есть работа за пределами Azure, но было любопытно, может ли процесс PhantomJS размещаться как веб-работа.
Кто-нибудь знает, можно ли таким образом развернуть PhantomJS?
Я запускаю свой сайт под "бесплатной" конфигурацией.
Ответы
Ответ 1
PhantomJS не работает на лазурных веб-сайтах.
Я попытался выполнить его через оболочку CMD [yoursite].scm.azurewebsites.net/DebugConsole, но она меняет, когда я вызываю ее с помощью raserize.js script.
вы можете использовать phantomjs в качестве рабочей роли, он будет работать.
Update
Относительно этого:
fooobar.com/questions/386457/...
phantomJS использует GDI для рендеринга изображений и pdf, а GDI заблокирован на Azure Website
ref: GDI не включен в azure webisites http://social.msdn.microsoft.com/Forums/windowsazure/en-US/b4a6eb43-0013-435f-9d11-00ee26a8d017/report-viewer-error-on-export-pdf-or-excel-from-azure-web-sites
ref: PhantomJS использует GDI для рендеринга шрифтов: https://github.com/ariya/phantomjs/blob/6a01a8dece0c4dd697eaa0b208057d2bd43a30f3/src/qt/mkspecs/win32-msvc2003/qmake.conf#L63
Ответ 2
У нас та же проблема с WSAS (веб-узлами Windows Azure). Мы можем запускать связь через stdin/stdout с помощью phantomjs.exe, но когда он действительно выполняет фактический сетевой запрос, он будет тайм-аут или замерзнет, если тайм-аут не будет установлен.
Некоторые другие приложения могут выполнять сетевые запросы (например, curl.exe), но если вы попытаетесь запустить "ping", он ответит "Не удается связаться с IP-драйвером. Общий сбой". googling, который говорит о том, что на их виртуальных серверах возможно неправильная конфигурация Hyper-V.
Ответ 3
Веб-сайты Azure не позволят вам прослушивать порты, также вы не можете использовать localhost с вашего сайта Azure.