2017-03-04 4 views
0

Je souhaite utiliser IIS8 pour router le trafic des ports 80/443 vers deux applications fonctionnant sur le même serveur, l'un étant sur le port 8080 (application node.js, fonctionnant comme un service distinct), un autre sur le port 8090 (une application .NET, s'exécutant sur le même IIS, gérant les appels api).Réécriture d'IIS vers des applications locales - échoue avec 404

J'ai installé une application sur le port 80, avec le web.config suivant

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.webServer> 
     <rewrite> 
       <rules> 
       <rule name="rewrite api to backend calls" stopProcessing="true"> 
        <match url="^api/(.+)$"/> 
        <action type="Rewrite" url="http://127.0.0.1:8080/{R:1}"/> 
       </rule> 
       <rule name="rewrite everything else to frontend" stopProcessing="true"> 
        <match url="(.*)" /> 
        <action type="Rewrite" url="http://127.0.0.1:8090/{R:1}"/> 
       </rule>    
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 

Malheureusement, cette approche ne fonctionne pas - quelle que soit la ressource que j'essaie d'interroger, je reçois une erreur 404.

Dans les journaux de FREB, les demandes sont correctement traduits de oldUrl, au NEWURL, rien ne se trouve dans le cache, puis le suivant est mentionné dans les journaux comme MODULE_SET_RESPONSE_ERROR_STATUS

ModuleName="IIS Web Core", Notification="MAP_REQUEST_HANDLER", HttpStatus="404", HttpReason="Not Found", HttpSubStatus="4", ErrorCode="The filename, directory name, or volume label syntax is incorrect. 
(0x8007007b)", ConfigExceptionInfo="" 

Répondre