IISNode running Node.js with multiple domains issue - node.js

I put a basic, no frills node npm-express blog site up on a azure website and the IIS load balancing or just iisnode itself seemed to cause issues running the app.js. Running outside of IIS didn't experience any issues. No websockets, just express using vash templates.
The issues I ran into are:
Using web deploy and some node_modules intermittently not deploying. npm lwip for instance would work at first then wouldn't if deploying again. Sometimes other js and vash files would not update also.
When using the site there was a plain vash templates section (the public facing side) and a login side of the site. The simple one page public facing side would intermittently create a 500 error. One out of every three request would do this. No logs generated and all logging was turned on. The error was from iisnode and not node itself.
Using visual studio 13 with all the latest updates, remote debugging simply didn't work. Basically in the dark. Oddly the logged in portion using npm-passport-local worked but that never changed domains when using. It was only the pages on the public side that this would happen. FYI, the public side had multiple domains and various sub domains pointing to the site. All entered correctly in the azure portal and would work with the intermittent 500 error. The page had links to other blogs with full urls, hence the domain would change. Which should be an issue but I suspect had something to do with it.
I ended up having to create a azure vm and install node on it myself to get the site working without the use of IIS. FYI, running the node site locally on my sand I never encountered any issues either.
Has anyone else experienced issues like this using iisnode and did you find a work around for this?
I suspect it may happen when multiple domains are used for the same instance.

Related

500 error when I try to deploy nextjs ssg application with incremental-static-generation

I have NextJS app with SSG. This functionality was added recently and according to it I should do next-export after next-build to get static files. But after appearing in 9.4 of Incremental Static Regeneration I need to keep server on by npm-start command (in my case I use custom server file with next-express functionality). It works good locally and It works good when I get artifact from Azure. But It doesn't work globally when it will be deployed finally. Help please
Through my attempts, I found that it is impossible to install globally or use next in Azure Web App. That is, it cannot be deployed through Github.Deploying using other methods such as FTP cannot run successfully. It should be related to the azure node environment.
But the method provided in this post says that it can be processed by adding web.config. I think it should be useful and helpful to you. Please read it carefully and try it.
You also can read this document, maybe it useful to you.

Internal server error deployment on Azure - node.js and Vue.js

I have been looking all over the internet for two weeks now and I have no clue what is happening.
I have an app running on a node.js server. The app uses the Vue.js framework and Vuetify.js, so I don't have a "traditional" js server. The website works perfectly on local, but every time I try and deploy it on an Azure (Windows) web application (per request from the company I am developing for), the only thing that is displayed is this: " The page cannot be displayed because an internal server error has occurred. ".
I did set the Azure Web App to use node.js as instructed on the official documentation.
According to my searches, it is probably a problem with my web.config file, but I can't seem to solve it, so would be really happy if someone could help me out here.
What I have tried so far:
multiple versions of the Web.config file
opening the 443 and 80 port on the Azure Web App to rule out any kind of conflict there
moving around my Vue classes to try and solve a problem there
making the front end in HTML files and in Vue files. Right now it is back into Vue files
I can't seem to find what else to try and would be really grateful if anyone had a solution!
I can add my web.config here if needed
Thanks in advance!

ReastJS, Node, and IIS

I have been following a tutorial from Cory House on Pluralsight about React, Redux, webpack, babel, and a bunch of other support libraries. I am using Visual Studio Code on a windows OS. I have completed the tutorial, which includes a build process that outputs a bundled js file to a dist folder. The build process also runs the app to verify the build is correct (which it is). I then tried to copy the contents up to an IIS server and run it there. However, when I try to access the web site, the index page comes up blank. I verified the bundled js file is called (returns 200 status). That left me wondering if there is an extra step I need to do to transfer an app created using Node to one that can run on IIS.
I should clarify I added a web.config file to the site.
Any help is appreciated
Edit: Here are two errors I am getting on when rendering the page. One of the errors (#2) appears to be a web pack module:
Error 1
Error 2
In error 2, "Attributes" is undefined
I figured it out partially. It had to do with react-router and my routing. When developing and running it locally, it was running at the root of local host:
http://localhost
When I moved it to the IIS server, I had to create an app under the default web site, which changed the apps url to:
http://localhost/ReactJS
That caused my routing to fail and loaded a blank page. However, even though the home page loads now since fixing the routing, it is still not working as I can't navigate to the other views, but at least I have narrowed it down.

Ghost blog integrated with application

I am new to node, so please excuse me if I am asking stupid questions.
Ghost has been released as NPM module recently. I am trying to integrate it with my application, so I could have custom home page and serve blog on a separate page. Once I do following in my app.js, it takes over all the traffic to my site. How do I configure ghost to serve only the blog?
var ghost = require('ghost');
ghost();
We're missing a few details here so I'll make some assumptions.
If you are hosting node using the default server than (as of this posting) you are out of luck since ghost is setup to run in it's own standalone server. One possible solution is to run both the standard node.js server for your page then another for ghost. That's obviously not ideal but until they fix their integration issues you don't have much choice.
I'm trying to solve the same problem, and currently imagine finding a hosting that allows me to run two node instances (I think that is quite possible with e.g. digital ocean). One - port 80 - will point to Ghost, while the other (on some other port) will host the REST API for the app.
I will then create a blank page linked to a custom template that loads the rest of my angular application - the files will be stored in the assets folder of my custom template, while ajax calls will simply be to the non-standard port.

Running vline-node example on IIS

I have successfully tested the vline-node example locally, but would like to push it out to a server. I have tried to install the example as an application on an IIS8 website, placing the example code under wwwroot. I have done tried this both within the root and inside a virtual directory, pointing to the views folder. I am able to login to the application from a browser on the server, although, since javascript is turned off on the server browsers for security, so functionality is missing.
However, when I try to access the site from a remote browser I am not able to login. Actually, I can see that there is something wrong with my paths, as the include files are not found.
The more I've thought about this the more confused I've become. I'd like to run this under IIS, but wonder if that makes sense. Can someone offer a clean solution for hosting the vline-node example on a Windows Server, ideally under IIS?
Since you are using the node example, you'll need to make sure that node is actually running on your IIS server. Here's a SO response that may be helpful: How to run Node.JS server for a web application?
Note that in our node example the "main" file is vline-node.js, so use that in place of the app.js that is mentioned.

Resources