Как указать путь к файлу в теге обработчика в web.config

Я пытаюсь запустить простое приложение 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> 

Буду признателен за любую помощь.

"Корневая папка"? Который из? И обычно вы не можете, так как правила выполняются из папки вашего сайта, а «bin / www» должен находиться в папке вашего сайта. Если вы хотите изменить уровень сервера, вы должны использовать «applicationHost.xdt».

Lex Li 02.09.2018 12:55

Большое спасибо за ответ. Прошу прощения за недоразумение. На самом деле это папка wwwroot, которую я имел в виду как «корень». web.config находится в этой папке wwwroot. В файле web.config я пытался сослаться на файл wwwroot / bin / www, но в принципе это невозможно сделать? Если я хочу записать путь к файлу в web.config, указанные файлы должны находиться в той же папке, что и web.config?

Dai 02.09.2018 15:11

Windows использует «\» вместо «/», поэтому я предполагаю, что вы должны использовать вместо этого «bin \ www».

Lex Li 02.09.2018 16:08

Большое спасибо за ответ. Я пробовал это, но это не сработало.

Dai 03.09.2018 08:42
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
771
1

Ответы 1

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

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