Как указать путь к файлу в теге обработчика в web.config - PullRequest
0 голосов
/ 02 сентября 2018

Я пытаюсь запустить простое приложение node.js в облаке Azure.

Я в основном следовал инструкции, написанной на следующих сайтах.

-Создание веб-приложения- https://code.visualstudio.com/tutorials/app-service-extension/create-app

-Развертывание веб-приложения- https://code.visualstudio.com/tutorials/app-service-extension/deploy-app

Чтобы запустить его в Azure (IIS), я добавил web.config и server.js в корневую папку, как показано ниже. добавлено 2 файла

Содержимое файлов выглядит следующим образом. [Web.config]

<configuration>
<system.webServer>
      <handlers>

        <!-- Indicates that the server.js file is a node.js site to be handled by the iisnode module -->
        <add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
      </handlers>
      <rewrite>
        <rules>

          <!-- All URLs are mapped to the node.js site entry point -->          
          <rule name="DynamicContent">
            <match url="/*" />
            <action type="Rewrite" url="server.js"/>
          </rule>

        </rules>
      </rewrite>
</system.webServer>
</configuration> 

[server.js] Ниже приведена только часть кодов.

#!/usr/bin/env node

/**
 * Module dependencies.
 */

var app = require('./app');
var debug = require('debug')('myexpressapp:server');
var http = require('http');

/**
 * Get port from environment and store in Express.
 */

var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);

/**
 * Create HTTP server.
 */

После развертывания в Azure (IIS) веб-приложение успешно запустилось. Однако я хотел бы использовать файл bin / www вместо server.js. На самом деле я создал файл server.js в корневой папке, скопировав файл bin / www. Чтобы напрямую использовать bin / www, я изменил web.config следующим образом, но это приводит к ошибке. Браузер показывает ошибку: «Ресурс, который вы ищете, был удален, изменилось его имя или временно недоступен». Кажется, он не может найти файл www. Я не прав, как я пишу путь?

<configuration>
<system.webServer>
      <handlers>

        <!-- Indicates that the server.js file is a node.js site to be handled by the iisnode module -->
        <add name="iisnode" path="bin/www" verb="*" modules="iisnode"/>
      </handlers>
      <rewrite>
        <rules>

          <!-- All URLs are mapped to the node.js site entry point -->          
          <rule name="DynamicContent">
            <match url="/*" />
            <action type="Rewrite" url="bin/www"/>
          </rule>

        </rules>
      </rewrite>
</system.webServer>
</configuration> 

Я бы оценил любую помощь.

1 Ответ

0 голосов
/ 03 сентября 2018

Я смог решить проблему. Я изменил имя папки с «bin» на какое-то другое имя, и это сработало. Я пытаюсь понять, почему имя "bin" не работает, хотя ... Это потому, что "bin" является зарезервированным сервером и его нельзя использовать? Я бы оценил это, если бы кто-то мог сообщить мне о возможных причинах ...

...