Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Crashing Issue running examples #231

Closed
randyho-kk opened this Issue · 29 comments

3 participants

@randyho-kk

I can't seem to get version 0.2 working. The last version i tried was 0.1.21 and it worked fine.

Is anyone else seeing this?

Here's my setup on a Server 2008 x64 System

  • Installed vcredist 2012 x64
  • installed node 0.8.12
  • installed iisnode iisnode-full-iis7-v0.2.0-x64.msi
  • ran setupsamples.bat as administrator

navigate browser to http://localhost/node

Result in browser:

Service Unavailable
HTTP Error 503. The service is unavailable.

View Windows Event Log:
The Module DLL C:\Program Files\iisnode\iisnode.dll failed to load. The data is the error.

Checking IIS Manager i notice that my worker pool has stopped because of the crash.

@tjanczuk
Owner

Can you confirm if the application pool you are running in has the "Enable 32-bit applications" setting set to "False"? You can navigate there from IIS Manager, by right-clicking the application pool you use and choosing Advanced Settings.

@randyho-kk

That setting is set to False by default. If i set it to True the errors show up only when parsing node js files. I can hit the index.htm file with no crashing.

But attempting to navigate to hello.js now results in

HTTP Error 500.21 - Internal Server Error
Handler "iisnode" has a bad module "iisnode" in its module list

@randyho-kk

More info:

This doesn't seem to crash on windows 7 workstations. Not sure if that helps.

@tjanczuk
Owner

Can you inspect your %systemdrive%\Windows\System32\inetsrv\config\applicationHost.config file, find a globalModules section in it, and check the shape of the iisnode entry? It should look similar to:

<add name="iisnode" image="C:\Program Files\iisnode\iisnode.dll" preCondition="bitness64" />
@randyho-kk

C:\Windows\System32\inetsrv\config\applicationHost.config is empty on my windows 2008 x64 system.

@tjanczuk
Owner

That's interesting. Do you have any other files in that directory? Also, do you see C:\Windows\System32\inetsrv\config\schema\iisnode_schema.xml file? (If so, what's the content?)

@randyho-kk

Export\
schema\
administration.config
applicationHost.config
redirection.config

The applicationHost.config file has a date modified of the time i installed IISNode.

@randyho-kk

Interesting...i was editing the file with x86 gvim and was not able to see the contents. Opening it in notepad shows the contents.

anyways...

globalModules
<add name="iisnode" image="C:\Program Files\iisnode\iisnode.dll" preCondition="bitness64" />

@tjanczuk
Owner

That looks how I would exect it to. Can you get depends.exe from http://www.dependencywalker.com/, open the c:\program files\iisnode\iisnode.dll with it, and check if any of the DLLs it requires are missing on your system?

@randyho-kk

IESHIMS.DLL - Error opening file. The system cannot find the file specified (2).
LINKINFO.DLL - Error opening file. The system cannot find the file specified (2).

@tjanczuk
Owner

These should be fine.

Coming back to "Enable 32-bit applications". With that set to False, do you see the error even for index.html, or only for *.js files?

@tjanczuk
Owner

Did you by any chance install WebMatrix2 on this box? If so, before or after iisnode?

@randyho-kk

only for .js. It's almost like setting it to enable 32bit applications ignored the iisnode handler in web.config.

index.html has no errors with enable 32bit applications.
hello.js has errors with enable 32bit applications.

I did not explicitly install webmatrix2 on this box. It's (mostly) a fresh install of win2008 that has iisnode on it. It's a base vm that i clone and test software with.

Is there a way to check if webmatrix2 is installed? it's not in add/remove programs

@tjanczuk
Owner

Yes, setting "Enable 32bit application" should ignore the iisnode.dll handler, because it is 64 bit.

What is the behavior again with "Enable 32-bit applications" set to FALSE (not TRUE). Do you get errors only for *.js, or also for index.html?

@randyho-kk

Yeah seeting Enable 32bit to false will result in crashing of the worker pool when navigating to both the index.html and *.js.

I think the crashing is happening when the web.config handler is being loaded.

@randyho-kk

Result in browser:

Service Unavailable
HTTP Error 503. The service is unavailable.

View Windows Event Log:
The Module DLL C:\Program Files\iisnode\iisnode.dll failed to load. The data is the error.

@randyho-kk

in dependencywalker, KERNEL32.DLL and IEFRAME.DLL show as red icons. Does this mean anything?

@tjanczuk
Owner

Is that Windows 2008 or Windows 2008 R2? Which version of IIS do you have exactly?
Do you have another W2K8 machine you can try it on to help understand if this is something about this particular box?

@randyho-kk

it's a windows 2008 box. we're setting up a windows 2008 r2 machine right now to test.

anything else i can look at that may help?

@randyho-kk

IIS is Version 7.0

@tjanczuk
Owner

kernel32.dll show up as red icon where exactly? Can you share a screen shot?

@tjanczuk
Owner

OK, this is interesting. Can you click on that kernel32.dll line and then inspect the parent import function list for any functions iisnode.dll attempts to call that are missing from your version of kernel32.dll? Instructions at http://www.dependencywalker.com/help/html/hidr_import_list_view.htm

@randyho-kk

The only one that shows red is

Ordinal: N/A
Hint: 939 (0x03AB)
Function: K32GetProcessMemoryInfo
Entry Point: Not Bound

@tjanczuk
Owner

Great, thanks. It looks like this function lives in a different library on W2K8 than in W2K8R2: http://msdn.microsoft.com/en-us/library/windows/desktop/ms683219(v=vs.85).aspx:

Kernel32.lib on Windows 7 and Windows Server 2008 R2;
Psapi.lib (if PSAPI_VERSION=1) on Windows 7 and Windows Server 2008 R2;
Psapi.lib on Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP

So your issue should go away on W2K8 R2. Now, is lack of support for vanilla W2K8 a show stopper for you?

@randyho-kk

yes, unfortunately we may not be able to migrate to R2 just yet :/

Is it possible to have a version that supports 2008?

@tjanczuk
Owner

This is definitely fixable, I will make sure it makes it in the next release. Are you on a schedule?

@randyho-kk

No schedule but we have a change we want to pull request soon. Was hoping to test the change on server 2008 before we sent the request. Or should we just go ahead with it?

https://github.com/breuben/iisnode/commits/working-directory-config

@breuben

Hi Tomasz,

I've made a change to link specifically against psapi.lib to avoid the load library errors on Windows 2008. Everything seems to work fine on both Windows 2008 and on Windows 7. I sent a pull request containing this change, so hopefully this helps you out!

Ben

@tjanczuk tjanczuk closed this in 3db0cf8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.