Невозможно запустить сайт узла krakenjs + как веб-сайт Azure

После небольшого беспокойства я заставил Azure правильно извлекать последние версии из моего GIT-репозитория и запускать соответствующие команды bower и grunt для создания всего этого. Это не похоже на проблему.

Проблема в том, что IIS завершается с ошибкой 500.1001 при попытке фактически загрузить мой веб-сайт через браузер. В попытке реплицировать проблему локально, так как я не мог понять, как получить какую-либо информацию журнала, я установил iisnode на свой локальный IIS и обнаружил, что у меня та же проблема... пока я не позволил пулу приложений работать под системой учетная запись пользователя. (Я знаю я знаю)

К сожалению, если ошибка также является какой-то странной ошибкой разрешения узла, я не уверен, что делать с этим в среде веб-сайта Azure. Я просто накрылся? После еще одного возни, я сбросил файл iisnode.yml на свой FTP, чтобы включить ошибки разработчика, и, наконец, получил что-то

HRESULT: 0x2
HTTP status: 500
HTTP subStatus: 1001
HTTP reason: Internal Server Error
You are receiving this HTTP 200 response because system.webServer/iisnode/@devErrorsEnabled configuration setting is 'true'.

In addition to the log of stdout and stderr of the node.exe process, consider using debugging and ETW traces to further diagnose the problem.

The node.exe process has not written any information to stderr or iisnode was unable to capture this information. Frequent reason is that the iisnode module is unable to create a log file to capture stdout and stderr output from node.exe. Please check that the identity of the IIS application pool running the node.js application has read and write access permissions to the directory on the server where the node.js application is located. Alternatively you can disable logging by setting system.webServer/iisnode/@loggingEnabled element of web.config to 'false'.

После этого мне удалось получить журнал stdout:

Application ready to serve requests.
Environment: development

Что только половина того, что я обычно вижу, когда работаю локально. Сообщение "сервер прослушивает..." никогда не срабатывает, что говорит о том, что оно, вероятно, не зашло так далеко. Я не совсем уверен, что еще делать на этом этапе. Если виртуальная машина - мой единственный вариант, я бы предпочел сначала посмотреть на heroku или nodejitsu, поскольку я не хочу действительно платить за что-то такое тяжелое. Вот индексный файл Krakenjs, который запускает приложение.

'use strict';

var http = require('http');
var express = require('express');
var kraken = require('kraken-js');


var options, app, server;
options = {
    onconfig: function (config, next) {
        next(null, config);
    }
};

app = module.exports = express();
app.use(kraken(options));
app.on('start', function () {
    console.log('Application ready to serve requests.');
    console.log('Environment: %s', app.kraken.get('env:env'));
});

if (!module.parent) {

    server = http.createServer(app);
    server.listen(process.env.PORT || 8000);
    server.on('listening', function () {
        console.log('Server listening on http://localhost:%d', this.address().port);
    });

}

ОБНОВЛЕНИЕ: Добавление файлов web.config и iisnode.yml

Web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <iisnode node_env="production" />
    <!-- Visit http://blogs.msdn.com/b/windowsazure/archive/2013/11/14/introduction-to-websockets-on-windows-azure-web-sites.aspx for more information on WebSocket support -->    
    <handlers>
      <!-- Indicates that the server.js file is a node.js site to be handled by the iisnode module -->
      <add name="iisnode" path="index.js" verb="*" modules="iisnode"/>
    </handlers>
    <rewrite>
       <rules>
        <rule name="hello">
           <match url="/*" />
          <action type="Rewrite" url="index.js" />
         </rule>
       </rules>
     </rewrite>

    <!-- Make sure error responses are left untouched -->
    <httpErrors existingResponse="PassThrough" />
  </system.webServer>
  <appSettings>
    <add key="PORT" value="80" />
  </appSettings>
</configuration>

И файл iisnode.yml:

node_env: development
loggingEnabled: true
logDirectory: iisnode

maxLogFileSizeInKB: 128
maxTotalLogFileSizeInKB: 1024
maxLogFiles: 20
devErrorsEnabled: true

Я знаю, что node_envs конфликтуют друг с другом, насколько я понимаю, выигрывает файл iisnode, поэтому я настроил его по-другому, чтобы увидеть, изменилось ли что-то.

0 ответов

Другие вопросы по тегам