0

I have hosted a NodeJs express app on IIS server using iisnode. App is running on node server without giving any error. it gives me following error with iisnode. Used Express version is 4.13.4.

enter image description here

I have installed URL rewrite module for IIS.

My server.js file as follows.

'use strict';

// Module dependencies.
var express = require('express'),
    path = require('path'),
    fs = require('fs'),
    cors = require('cors'),
    methodOverride = require('method-override'),
    morgan = require('morgan'),
    bodyParser = require('body-parser');

var app = module.exports = exports.app = express();

app.locals.siteName = "IOS IBE";
app.use(cors());
//cors and preflight filtering
app.all('*', function (req, res, next) {
//preflight needs to return exact request-header
    res.set('Access-Control-Allow-Headers',
        req.headers['access-control-request-headers']);
    if ('OPTIONS' == req.method)
        return res.send(204);
    next();
});
app.use(express.static(__dirname + '/public'));

app.get('/*', function (req, res) {
    res.sendFile(__dirname + '/public/index.html');
});

app.use(methodOverride());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

// Start server
var port = 4015;
app.listen(port, function () {
    console.log('Distributor portal App manager server listening on port %d in %s mode', port, app.get('env'));
});

My web.conf is as follows

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.webServer>         
      <handlers>
           <add name="iisnode" path="server.js" verb="*" modules="iisnode"/>
     </handlers>
      <rewrite>
           <rules>

                <rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">                    
                    <match url="^server.js\/debug[\/]?" />
                </rule>

                <rule name="StaticContent">
                     <action type="Rewrite" url="public{REQUEST_URI}"/>
                </rule>

                <rule name="DynamicContent">
                     <conditions>
                          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True"/>
                     </conditions>
                     <action type="Rewrite" url="server.js"/>
                </rule>

           </rules>
      </rewrite>
   </system.webServer>
 </configuration>
Janith Widarshana
  • 3,213
  • 9
  • 51
  • 73

0 Answers0