В Azure у меня есть служба веб-приложений, на которой я давно работаю, и сервер asp.net.Этот сервер используется в качестве REST-API для мобильного приложения.Теперь я хочу развернуть сайт, который реализован как приложение React.Я обнаружил возможность иметь виртуальные приложения в одном веб-приложении Azure, что, на мой взгляд, прекрасно.
В настоящее время у меня есть два пути с виртуальным путем: «/», ведущий к серверу asp.net, ивиртуальный путь «/ web /», который ведет к папке реакции, как показано на рисунке.Настройка виртуального пути
Когда я пытаюсь получить доступ к серверу реагирования через браузер, появляется страница с ошибкой asp.net, которая выводит меняполагать, что asp.net обработал мой запрос, а не реагирует на приложение.Если я переключаю виртуальные пути, приложение реагирует на мой запрос независимо от URL-адреса, который я пытаюсь достичь, блокируя сервер asp.net.
Таким образом, веб-приложение может содержать как серверы asp.net, так и узелСерверы .js, но я не могу заставить их работать бок о бок, обрабатывая запросы по разным путям.
Я также пытался добавить / web в ignoreroutes asp.net.
Возможноесть некоторые основы, которые я пропустил, потому что я не могу найти никого с такими же проблемами.Я спрашиваю здесь, потому что я надеялся, что у кого-то были такие же проблемы или какие-то подсказки.Заранее спасибо.
Обновление Если кто-то находится в такой же ситуации, у меня есть другие выводы по этому вопросу.Прежде всего, если я установил Managed Pipeline на Classic, а не на интеграцию в настройках веб-приложения Azure, Ii удалось получить доступ к приложению node.js и приложению asp.net, пока корневой путь указывал на asp.сетевое приложение.Однако это сломало некоторые из моих контроллеров в приложении asp, и если я указал корневой путь к приложению node.js, приложение узла по-прежнему блокирует приложение asp, как и раньше.
Мой временный обходной путь должен был установитьнастройку конвейера на Integrated и разделение двух приложений на / api и / web, где путь по умолчанию '/' указывает на пустой каталог
Solution Так что трудно сказать, чтов прошлый раз был совершенно не прав, но после очистки моих файлов Web.config это удалось решить.
<system.webServer>
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="React Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
</conditions>
<action type="Rewrite" url="server.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
Здесь важно правило перезаписи: если оно соответствует / api-шаблону, запрос игнорируется реакцией и пропускается на asp-сервер.