Problem: 2.0.1.15 on 64bit Server 2k8, IIS7

Topics: User Forum
Apr 7, 2010 at 7:12 PM

We manually installed IIRF. The last step of verifying it was going to run thru the Web Service Extensions was done at the server level thru ISAPI and CGI Restrictions.

The problem is that nothing happens.

No errors in the Event Viewer, no log files, no dancing hampsters ;)

http://localhost/iirfStatus just returns a 404 error and no errors appear anywhere.

Any ideas?

thanks,

lee

 

Coordinator
Apr 7, 2010 at 7:20 PM

Did you create the IirfGlobal.ini and IIRF.ini files, in the appropriate places? 

 

 

Apr 7, 2010 at 7:26 PM

I think so.

The iirfGlobal.ini file is in the same directory as the dll which is in the system32/inetsrv/iirf directory.

 

The IIRF.ini file is located C:\inetpub\wwwroot as we are installing this on the default website.

 

thanks,

 

lee

Apr 7, 2010 at 7:44 PM

Here is an interesting bit.

 

I attempted to run iirfVersion.exe (placing it in the same directory as IIRF.dll) and it errored with the message that it could not find IIRF.dll.

 

lee

Coordinator
Apr 7, 2010 at 7:45 PM

ok, that sounds right.  did you enable 32-bit ISAPI on the 64bit OS?

http://technet.microsoft.com/en-us/library/cc784530(WS.10).aspx

 

Apr 7, 2010 at 7:59 PM

We are closer.

I do not think those scripts work for IIS7. I did check the app pools manually and now have a different error message.

 

HTTP Error 500.0 - Internal Server Error

Calling LoadLibraryEx on ISAPI filter "C:\Windows\System32\inetsrv\iirf\Iirf.dll" failed

 

Which is odd since the dll is named IIRF.dll. I've verified all of the settings ISAP/CGI Restrictions, ISAPI Filters and Handler Mappings and they all have it as IIRF.dll

 

lee

Apr 7, 2010 at 8:12 PM

Same error message with IIRF.dll listed after I removed and reinstalled.

The Event Viewer is now listing the error as:

The HTTP Filter DLL C:\Windows\System32\inetsrv\iirf\IIRF.dll failed to load.  The data is the error.

Could not load all ISAPI filters for site 'DEFAULT WEB SITE'.  Therefore site startup aborted.

 

thanks for all your help with this.

Coordinator
Apr 7, 2010 at 9:23 PM
Edited Apr 7, 2010 at 9:24 PM

re: "The data is the error" - check the IIRF documentation.  This is described in the section on verifying and troubleshooting the installation.

Often it's a permissions error.

 

Apr 7, 2010 at 9:36 PM

I've set 'Everyone' to have full control of the iirf folder and files.

I've made sure that the Identity of the App Pool user also has full control of the folder and files.

Still getting the same error message.

thanks,

lee

Coordinator
Apr 7, 2010 at 10:40 PM

Did you verify that it is a permissions error?   "The data is the error" - did you verify that it indicates a permissions error?

 

Apr 8, 2010 at 1:33 PM

I did not verify that it was a permissions error. I just wanted to eliminate that as a possibility.

thanks,

lee

Coordinator
Apr 8, 2010 at 3:18 PM

It's very easy to check if it is a permissions error.  Read the section in the doc that I cited above.

Before you fix the permissions, first make sure they need fixing.

 

Apr 8, 2010 at 4:19 PM

Looks like it is not a permissions error.

Any other ideas?

thanks,

lee

Coordinator
Apr 9, 2010 at 7:01 AM

Yes.  Now you have told is what the error IS NOT. 

You haven't told us what IT IS. 

Why so mysterious?   There's a set of instructions in the troubleshooting page that says how to determine the error, from the code in the event log.

Did you follow those instructions?   What did you see in the event log ?

 

Apr 9, 2010 at 1:28 PM

Yes I followed the instructions.

As I posted above the errors in the Event Viewer are as follows:

"The HTTP Filter DLL C:\Windows\System32\inetsrv\iirf\IIRF.dll failed to load.  The data is the error."

"Could not load all ISAPI filters for site 'DEFAULT WEB SITE'.  Therefore site startup aborted."

The errors being so generic is why I asked for help getting it resolved.

thanks,

lee

Coordinator
Apr 9, 2010 at 2:07 PM

re: The data is the error" - the information immediately following that, is the error.

you didn't provide that. I'm not sure you noticed it. That is the bit of information you're after.  This is described in the documentation I keep referring to.

 

Apr 9, 2010 at 5:18 PM

 

Here is the XML data for the two errors.
As you can tell there is not much there.
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name="Microsoft-Windows-IIS-W3SVC-WP" Guid="{670080D9-742A-4187-8D16-41143D1290BD}" EventSourceName="W3SVC-WP" />
  <EventID Qualifiers="49152">2214</EventID>
  <Version>0</Version>
  <Level>2</Level>
  <Task>0</Task>
  <Opcode>0</Opcode>
  <Keywords>0x80000000000000</Keywords>
  <TimeCreated SystemTime="2010-04-09T08:02:53.000Z" />
  <EventRecordID>7732</EventRecordID>
  <Correlation />
  <Execution ProcessID="0" ThreadID="0" />
  <Channel>Application</Channel>
  <Computer>RCHRCDEV.fnc.net.local</Computer>
  <Security />
  </System>
- <EventData>
  <Data Name="IsapiFilter">C:\Windows\System32\inetsrv\iirf\IIRF.dll</Data>
  <Binary>7E000000</Binary>
  </EventData>
  </Event>

 

- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
  <Provider Name="Microsoft-Windows-IIS-W3SVC-WP" Guid="{670080D9-742A-4187-8D16-41143D1290BD}" EventSourceName="W3SVC-WP" />
  <EventID Qualifiers="49152">2268</EventID>
  <Version>0</Version>
  <Level>2</Level>
  <Task>0</Task>
  <Opcode>0</Opcode>
  <Keywords>0x80000000000000</Keywords>
  <TimeCreated SystemTime="2010-04-09T08:02:53.000Z" />
  <EventRecordID>7733</EventRecordID>
  <Correlation />
  <Execution ProcessID="0" ThreadID="0" />
  <Channel>Application</Channel>
  <Computer>RCHRCDEV.fnc.net.local</Computer>
  <Security />
  </System>
- <EventData>
  <Data Name="SiteName">DEFAULT WEB SITE</Data>
  <Binary>7E000000</Binary>
  </EventData>
  </Event>

 

 

 

Coordinator
Apr 9, 2010 at 6:29 PM

Still seems like a 32-bit vs 64-it problem; did you verify that you have IIRF configured to run as a 32-bit ISAPI?

I asked this before, but I'm not clear on whether you confirmed that you have it configured correctly.

 

Apr 9, 2010 at 6:46 PM
Yep.

I changed all of the application pools to run 32bit apps just to make sure.

lee

On Fri, Apr 9, 2010 at 12:29 PM, Cheeso <notifications@codeplex.com> wrote:
> From: Cheeso
>
> Still seems like a 32-bit vs 64-it problem; did you verify that you have
> IIRF configured to run as a 32-bit ISAPI?
>
> I asked this before, but I'm not clear on whether you confirmed that you
> have it configured correctly.
>
>
>
> Read the full discussion online.
>
> To add a post to this discussion, reply to this email
> ([email removed])
>
> To start a new discussion for this project, email
> [email removed]
>
> You are receiving this email because you subscribed to this discussion on
> CodePlex. You can unsubscribe on CodePlex.com.
>
> Please note: Images and attachments will be removed from emails. Any posts
> to this discussion will also be available online at CodePlex.com
Coordinator
Apr 9, 2010 at 7:29 PM

ok, I looked a little further.

The problem is not uncommon, as I can see from google searches.  Event IDs 2214 and 2268 are not uncommon, nor is the 7E error code.

7E in hex is 126 decimal, which is defined as ERROR_MOD_NOT_FOUND on Windows.  And the text associated to that error is "The specified module could not be found."

I don't know exactly when IIS would return that error, when trying to load an ISAPI module.  But we can guess.  The first thing I would check is,  is the location of the DLL configured correctly?  I know that must sound silly, but it seems like a very basic problem.  If you set the path for the DLL to something ridiculous, you should get this error, on WS2008.  On older servers, I think you get error code 05. 

If you double-check the location of the DLL, the next thing to check is dependencies.  One of the libraries IIRF.dll depends on may be missing.  When I build IIRF.dll I compile it against the Windows SDK, which includes a bunch of platform libraries.  If one of the libraries required by IIRF.dll does not exist on the server, then you can get this error.  This would be really unusual, but it might be possible, especially on a 64-bit server. 

One easy way to check dependencies is to use the "dependency walker" tool, which is a free third party tool.  http://www.dependencywalker.com/  Download it, install, and then load the IIRF.dll into the tool.  It will tell you if you have missing dependencies.  as I said, I would be surprised if this were the case, but it's easy to check.

Check those two things and let me know.

 

Apr 14, 2010 at 2:08 PM

Finally got around to running dependencywalker. Boss had other things for me to do :(

Looks like we are missing two files.

LINKINFO.dll & IESHIMS.dll.

I saved the dependencywalker image file if you want me to provide that. It is about 1.7M in size.

thanks,

 

lee

Coordinator
Apr 14, 2010 at 7:11 PM

Apparently you need the "Desktop Experience" on WS2008 in order to get linkinfo.dll .   See this discussion: http://iirf.codeplex.com/Thread/View.aspx?ThreadId=61872

About IESHIMS.dll, you should have that already in c:\program files (x86)\internet explorer .    I think.

But hold on - I see from another post elsewhere that dependency walker has x64 and x86 versions, and you can get incorrect results if you run the x64 version on the x86 IIRF dll.  See also the FAQ for Dependency Walker.  http://www.dependencywalker.com/faq.html  Are you running the x86 (32bit) version of dependency walker?  If you're not, then I wouldn't trust the output of dependency walker.

I wish I had a WS2008 X64 server, so I could be more helpful. But I don't.

 

Apr 14, 2010 at 8:17 PM
I grabbed the incorrect software.

I just grabbed the x64 one since that is the OS. I'll download the
other and try again and let you know.

lee

On Wed, Apr 14, 2010 at 1:11 PM, [email removed] wrote:
> From: Cheeso
>
> Apparently you need the "Desktop Experience" on WS2008 in order to get
> linkinfo.dll .   See this discussion:
> http://iirf.codeplex.com/Thread/View.aspx?ThreadId=61872
>
> About IESHIMS.dll, you should have that already in c:\program files
> (x86)\internet explorer .    I think.
>
> But hold on - I see from another post elsewhere that dependency walker has
> x64 and x86 versions, and you can get incorrect results if you run the x64
> version on the x86 IIRF dll.  See also the FAQ for Dependency
> Walker.  http://www.dependencywalker.com/faq.html  Are you running the x86
> (32bit) version of dependency walker?  If you're not, then I wouldn't trust
> the output of dependency walker.
>
> I wish I had a WS2008 X64 server, so I could be more helpful. But I don't.
>
>
>
> Read the full discussion online.
>
> To add a post to this discussion, reply to this email
> ([email removed])
>
> To start a new discussion for this project, email
> [email removed]
>
> You are receiving this email because you subscribed to this discussion on
> CodePlex. You can unsubscribe on CodePlex.com.
>
> Please note: Images and attachments will be removed from emails. Any posts
> to this discussion will also be available online at CodePlex.com
Apr 24, 2010 at 5:07 PM
Edited Apr 24, 2010 at 5:11 PM

i was interested in the x86 vs 64 bit versions of dependency walker, since i did the same as leefranke and got the version that matched my OS. when i copy the x86 version of DW to my server 2008 64 bit machine, it can't load (or see) IIRF.dll. when i explicitly (right click the DLL) open with depends.exe i get the error, "c:\windows\system32\inetsrv\iirf\iirf.dll contains an invalid path"

even if i run depends.exe as an administrator i can't see the iirf folder when browsing for the DLL. the administrator account has full control on both the folder and the DLL itself.

edit: i changed the properties of depends.exe to run in XP compatibility mode and always run administator. the same behavior ensued.

May 26, 2010 at 3:22 PM

hi, i was having the same problems above and since it was mentioned that it might still be an x86 x 64 problem, i tried putting the dll in C:\Windows\SysWOW64\inetsrv\IIRF. It seems to be working. Will now continue testing. Just thought i'd mention it here.

May 26, 2010 at 4:56 PM
Edited May 26, 2010 at 4:59 PM
that's interesting. i just copied my IIRF folder from c:\windows\system32\inetsrv\ to c:\windows\syswow64\inetsrv. i added the filter to a website, and enabled 32 bit applications on that site's application pool. the site doesn't error, but IIRF doesn't work. this is different from the previous situation where the site would error when i enabled 32 bit apps. there's something different happening, but no log is created via RewriteLog c:\windows\temp\iirfLog.out i am going to look into this a bit more if i find some time today. thanks for the tip.
Jun 7, 2010 at 8:19 PM

Thanks for this thread!  I was running into a wall and as noted above, I moved the iirf.dll to the c:\windows\syswow64\inetsrv folder and voila!  It worked.

But also for anyone reading this, You still need to make sure your set to run in 32bit mode and have the correct permissions on the dll.

 

Aug 31, 2010 at 6:42 PM

Hit the same issue on Windows 7 x64.  Had to enable 32-bit apps on the app pool, copy iirf.dll and IirfGlobal.ini to c:\windows\syswow64\inetsrv folder and grant read/execute on both files to IIS_WPG.  After an iisreset everything worked like a charm.

Sep 20, 2010 at 7:11 PM
snmskc wrote:

Hit the same issue on Windows 7 x64.  Had to enable 32-bit apps on the app pool, copy iirf.dll and IirfGlobal.ini to c:\windows\syswow64\inetsrv folder and grant read/execute on both files to IIS_WPG.  After an iisreset everything worked like a charm.

i am curious how you knew the iis worker process needed permissions on the files explicitly set. this seems to be the step that has been holding me up for months. i am having trouble with SSI on the site, but i haven't done an iis reset yet so who knows if that will remain. thanks for your tip.

Feb 18, 2011 at 12:56 AM

I'm in the same boat here, I attempted to manually install version 2.1.1.25x64 on my Server 2008 machine running IIS 7.5 to a specific site. After multiple attempts I still get the, Could not load all ISAPI filters for site example.ORG'.  Therefore site startup aborted.

 

I tried moving the .dll file into syswow64\inetsrv folder but still no luck. I have no idea what iirfGlobal.ini is as it did not come in any of the downloads and I can't find any references to it in the instructions. Any ideas?

Feb 18, 2011 at 6:46 PM

An update to my previous post above. I started over this morning by removing all previous attempts to manually install the filter. I then setup the dll and ini files outside of the Windows directory and configured IIS and everything is now working. I also used the 1.1.25x64 version.

Oct 18, 2011 at 3:25 AM

To make IIRF work well on Windows Server 2008 X64 + IIS7.X , you can try to follow the steps http://iirf.codeplex.com/discussions/276031  ,already tested on Windows Server 2008 x64 ,good luck to you :)