Сервер nodejs, развернутый в Azure, выводит длину содержимого - PullRequest
2 голосов
/ 15 апреля 2019

Мой server.js выглядит так:

var http = require('http');

var server = http.createServer(function (request, response) {

    const configs = {
        apiBaseUrl: 'http://myUrl'
    };

    const headers = {
        'Content-Type': 'application/json'
    };
    response.writeHead(200, headers);
    response.end(JSON.stringify(configs));
});

var port = process.env.PORT || 1337;
server.listen(port);

console.log("Server running at http://localhost:%d", port);

когда я запускаю это локально, выводится то, что должно:

{"apiBaseUrl":"http://myUrl"}

Но при развертывании в моем экземпляре Azure он ведет себя немного иначе. Также выводится количество символов:

29
{"apiBaseUrl":"http://myUrl"}
0

Любая подсказка, что может вызвать эту проблему?

Изменить: я забыл упомянуть, что развертываюсь в Azure, и у меня есть web.config:

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="Get dynamic configs in server environment" stopProcessing="true">
                    <match url="configs.json" ignoreCase="true"/>
                    <action type="Redirect" url="currentConfigs.js" redirectType="Permanent" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
        <handlers>
            <add name="iisnode" path="currentConfigs.js" verb="*" modules="iisnode" />
        </handlers>
    </system.webServer>
</configuration>

1 Ответ

2 голосов
/ 16 апреля 2019

Я сделал следующее наблюдение:

В портале Azure я включил расширение сайта Application Insights , нажав кнопку.

enter image description here

При этом автоматически создаются следующие настройки:

  • APPINSIGHTS_INSTRUMENTATIONKEY
  • APPINSIGHTS_PROFILERFEATURE_VERSION: 1.0.0
  • APPINSIGHTS_SNAPSHOTFEATURE_VERSION: 1.0.0
  • ApplicationInsightsAgent_EXTENSION_VERSION: ~ 2
  • DiagnosticServices_EXTENSION_VERSION: ~ 3
  • InstrumentationEngine_EXTENSION_VERSION: ~ 1
  • SnapshotDebugger_EXTENSION_VERSION: ~ 1
  • XDT_MicrosoftApplicationInsights_BaseExtensions: ~ 1
  • XDT_MicrosoftApplicationInsights_Mode: рекомендуется

Ответ на мой запрос теперь:

29
{"apiBaseUrl":"http://myUrl"}
0

После игры с этими новыми значениями я нашел значение, вызывающее проблему:

  • ApplicationInsightsAgent_EXTENSION_VERSION: ~ 2

Изменение значения на ~ 1 решило проблему, и ответ выглядел так, как нужно:

  • ApplicationInsightsAgent_EXTENSION_VERSION: ~ 1

Ответ:

{"apiBaseUrl":"http://myUrl"}

Я думаю, это супер странное поведение. Я создам проблему github и свяжу ее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...