Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support for x64 of node.js #178

Closed
tjanczuk opened this issue Jun 26, 2012 · 27 comments
Closed

support for x64 of node.js #178

tjanczuk opened this issue Jun 26, 2012 · 27 comments
Labels

Comments

@tjanczuk
Copy link
Owner

The iisnode MSI must be updated to check for x64 instead of x86 in this case
The default nodeProcessCommandLine may also require updates

@JoanGaastra
Copy link

I am trying to install the x64 version of iisnode with iisnode-full-iis7-v0.1.19.0-x64.msi. I am getting an error message that node.exe cannot be found in c:\program files (x86). I have installed the 64 bit version of node.js release 0.8.1. It has installed nodejs in the directory c:\program files. I do not see a way to change the directory in the installation package.

@tjanczuk
Copy link
Owner Author

tjanczuk commented Jul 2, 2012

You must use the nodeProcessCommandLine setting in the iisnode section of web.config (https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/web.config) or in the iisnode.yml configuration file (https://github.com/tjanczuk/iisnode/blob/master/src/samples/configuration/iisnode.yml) to indicate the command line iisnode should use to launch the node.exe process. If using iisnode.yml, you would need to say something like this:

nodeProcessCommandLine: C:\program files\nodejs\node.exe

@JoanGaastra
Copy link

I do not get that far. I cannot install iisnode using the msi package (iisnode-full-iis7-v0.1.19.0-x64.msi). During the installation process I am getting the error message "The node.exe is not found at C:\Program Files (x86)\nodejs. IIS cannot service node.js applications without node.exe. Please run the latest node.js installer......, then restart this installer". I expect that the problem is that I have installed the 64 bit version of node.js (release 0.8.1). I downloaded it from the nodejs site. I finally fooled the msi by manually creating the directory C:\Program Files (x86)\nodejs and copying the file node.exe to it. But this might create all kind of new problems. I still have the impression that there is a problem in the msi file.

@tjanczuk
Copy link
Owner Author

tjanczuk commented Jul 3, 2012

Yes, the MSI currently requires x86 version of node.js to be installed. This will be addressed in the future to allow either x64 or x86 versions. As you said, the iisnode MSI can be tricked into installing regardless by either manually placing node.exe in %programfiles(x86)\nodejs\node.exe, or by simply installing the x86 version of node.js before installing iisnode. After iisnode is installed, x86 version of node.js can be removed, as long as the nodeProcessCommandLine setting in the iisnode config is updated to point to an existing x64 or x86 version of node.exe.

@tjanczuk
Copy link
Owner Author

tjanczuk commented Jul 4, 2012

Also, may I ask why you require x64 of node.js in your application?

@pshevrin
Copy link

pshevrin commented Aug 9, 2012

I have downloaded the latest x64 installer and it checks for node.js in Program Files (x86). If you are going to have an x64 installer, shouldn't it check for an x64 node?

@tjanczuk
Copy link
Owner Author

tjanczuk commented Aug 9, 2012

The bitness of iisnode need not match the bitness of node.exe it is using. Currently by default iisnode requires 32 bit node.exe, but if you read this thread you will learn how you can substitute 64 bit version of node.js instead.

@chevcast
Copy link

This is a very annoying hurdle for iisnode. I reinstalled node 3 times before realizing it was only checking for 32 bit node. Once I realized what was happening I was able to move it into the other folder for installation but it does seem extremely odd to offer a 64 bit installer for iisnode but not check for 64 bit node. Yes the bitness does not "need" to match that of node, but if I'm downloading 64 bit iisnode what do you think the chances are that I also installed 64 bit node? Pretty high I would think.

@tjanczuk
Copy link
Owner Author

I hear you. This will be fixed.

@tjanczuk
Copy link
Owner Author

This table shows which node.js version will be required given a particular installer/os architecture combination:

installer                      OS      node.js required

iisnode-dev.msi                any     none
iisnode-core|full.msi          x86     x86
iisnode-core|full.msi          x64     x64
iisnode-express.msi            x86     x86 
iisnode-express.msi            x64     x64
iisnode-core|full.msi WOW=1    x64     x86

@chevcast
Copy link

Nice :D

@Venemo
Copy link

Venemo commented Sep 24, 2012

  • Also, may I ask why you require x64 of node.js in your application?

Probably because he has an x64 CPU and wants to take advantage of it.

@matthewblott
Copy link

Why has this been closed? I've just tried to install and have the same problem as the person that opened this thread. The installer still doesn't work and also the proposed solution of changing the web.config is a bit confusing as I surely need iisnode installed to be able to do this - the reason I'm here!

@tjanczuk
Copy link
Owner Author

tjanczuk commented Oct 2, 2012

This change has been checked into the repository but not released as a binary MSI yet. The MSI should be released within two weeks; until then you can build the project with this fix in place.

@tjanczuk
Copy link
Owner Author

Change of plans. The new fix to this issue is follows:

  • by default, iisnode will look up node.exe using the PATH search at runtime
  • a specific, fully qualified file path can be specified using nodeProcessCommandLine in iisnode.yml or web.config@iisnode, and it takes precedence over the default lookup logic
  • at installation time, there will be no check performed for existence of node.js installation; instead the activating message will return a descriptive error at runtime

The end result in terms of experience is that on x64 systems, one can have either node.js x64 or x86 installed, and either will work fine with iisnode x64.

@tracker1
Copy link

As a work around, until the MSI is available and in WebPI ...

from an administrator command prompt:
mklink /D "C:\Program Files (x86)\nodejs" "C:\Program Files\nodejs"

@ayoung
Copy link

ayoung commented Oct 19, 2012

@tracker1 YES!!!!

@DenysVuika
Copy link

Symbolic link worked like a charm, thanks a lot!

@hvkale
Copy link

hvkale commented Apr 6, 2013

Apparently, In web.config,
nodeProcessCommandLine="&quot ;%programfiles%\nodejs\node.exe&quot ;" (without spaces)
never worked for me but hardcoding the path like
nodeProcessCommandLine="C:\program files\nodejs\node.exe"
helped me.

@chevcast
Copy link

Awesome. Glad this is fixed :)

@mohitchhabra
Copy link

the best option i had found is to use npm for installing azure.
type npm azure-cli -g

@adrianhopebailie
Copy link

This issue still exists in the installer used by the Windows Platform Installer. I have just tried to install the latest Azure SDK for Node (published 2014-02-25) which requires iisnode and fails with this issue.

From the log it seems it is trying to install:
iisnode-core-iis7-v0.1.19.0-x64.msi

@chevcast
Copy link

chevcast commented Mar 4, 2014

@mohitchhabra @adrianhopebailie

I don't think this issue is about the azure cli tool. This is about the windows installer for iisnode specifically.

@adrianhopebailie
Copy link

I am referring to the issue with the installer. If you attempt to install anything using the Web Platform Installer for which iisnode is a prerequisite the install of iisnode fails with this error (it looks for an x86 version node installed and fails if you have an x64 version installed).

i.e. If the issue has been fixed, that fix has not been incorporated into the installer that is used by WPI which is one of the most common ways people will install iisnode

@chevcast
Copy link

chevcast commented Mar 4, 2014

Oh gotcha. Makes sense. Sounds like the WPI team needs to update to use the new installer.

@SamehSaeed
Copy link

@tracker1
Thx solution working perfect 👍 :)

@ghost
Copy link

ghost commented May 24, 2018

@kalehv
I have iisnode x64 and node.js x32 mixed. I have the node.exe it in my path but I got the reference-error like all the others here. So I did it the same way as Kalev, changed web.conf and it runs:
nodeProcessCommandLine="C:\Program Files (x86)\nodejs\node.exe"
interceptor=""%programfiles%\iisnode\interceptor.js""
Best
Axel Arnold Bangert - Herzogenrath 05.2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests