64-bit Server - with IIS in "32-bit mode" - Not Serving .aspx

  • Thread starter Thread starter Jeremy S.
  • Start date Start date
J

Jeremy S.

I'm a long-time asp.net developer who has been recruited to assist in
getting a new server to serve ASP.NET applications.

The facts as I understand them are as follows:

1. OS: Windows Server 2003R2 - 64-bit

2. IIS 6.0 running in 32-bit mode (I didn't even know this was possible
until today). Apparently this configuration decision was made buy some other
folks who were configuring the server to have IIS run a 32-bit PHP site.
Apparently they felt it was necessary to run IIS in 32-bit mode to make this
happen.

3. .NET Framework 3.5 is installed. When looking at the installation folders
under C:\Windows\Microsoft.NET\... it appears that the server has both
32-bit and 64-bit versions of the .NET Framework installed.

4. In IIS management console, the ASP.NET tab is missing.

5. In IIS management console, under "Server Extensions", there are two
entries for "ASP.NET" - one is listed as 64- bit, and the other is not
(presumably 32-bit). The 64-bit entry is "Permitted" while the other entry
is "denied".

6. There is only one ASP.NET Web site on this server - the site we are
trying to work with here. The only other Web site on the server is the php
site described above. It works just fine.

The IIS Web site we created [for the ASP.NET application] serves up .html
files just fine (of course IIS is doing that). But it chokes on requests for
..aspx files - specifically stating that the requested page could not be
found. So I manually updated the .aspx - to - aspnet_isapi.dll mapping to
use the version [of the dll] located in the 64-bit .NET Framework folder.
Prior to me getting involved, it had been mapped to the 32-bit .NET version.
Upon making this change (map to 64-bit .NET isapi), we no longer receive the
"page could not be found" error, but we get an incredibly cryptic message
"%1 ... " message in the browser (forgive me, it was several hours ago that
I saw this at work and have forgotten the rest of that cryptic message - in
any case it offered absolutely no obvious clues as to what the problem now
is.

In any case, I'm wondering what to try next. Please check my thinking on
this and offer any suggestions:
Being that IIS is apparently running in some "32-bit compatability mode" I
am thinking that I should do this:
1. in IIS management console, go to the "Server Extensions" dialog and deny
the 64-bit ASP.NET and permit the 32-bit ASP.NET.

2. Update the script maps to map .aspx, .asmx, etc extensions to the
aspnet_isapi.dll in the 32-bit .NET Framework installation folder.

If I do the above, then we would have IIS in 32-bit compatability mode, with
..aspx etc mapped to the 32-bit aspnet_isapi.dll, and the Server Extensions
configured to permit the 32-bit ASP.NET rather than the 64-bit ASP.NET. With
these "planets" all in alignment I'm thinking this should work.

When I get to work in the morning I"ll give the above a whirl. If it does
not work, then what should I be looking for?

Thanks.
 
What you posted is exactly what you need to do.

When getting the "File Not Found" error before (HTTP 404), if you had
checked the IIS logfiles, I suspect that the HTTP substatus field would have
been 404.2 (due to web service extension not being permitted):
http://support.microsoft.com/?kbid=318380

If IIS is running in 32bit worker process mode, you can't load a 64bit .dll
(which explains the odd error messages you were getting in that scenario). I
suspect that the Windows Event Log would have had something more pertinant.

Cheers
Ken

--
www.adopenstatic.com/blog


Jeremy S. said:
I'm a long-time asp.net developer who has been recruited to assist in
getting a new server to serve ASP.NET applications.

The facts as I understand them are as follows:

1. OS: Windows Server 2003R2 - 64-bit

2. IIS 6.0 running in 32-bit mode (I didn't even know this was possible
until today). Apparently this configuration decision was made buy some
other folks who were configuring the server to have IIS run a 32-bit PHP
site. Apparently they felt it was necessary to run IIS in 32-bit mode to
make this happen.

3. .NET Framework 3.5 is installed. When looking at the installation
folders under C:\Windows\Microsoft.NET\... it appears that the server has
both 32-bit and 64-bit versions of the .NET Framework installed.

4. In IIS management console, the ASP.NET tab is missing.

5. In IIS management console, under "Server Extensions", there are two
entries for "ASP.NET" - one is listed as 64- bit, and the other is not
(presumably 32-bit). The 64-bit entry is "Permitted" while the other entry
is "denied".

6. There is only one ASP.NET Web site on this server - the site we are
trying to work with here. The only other Web site on the server is the php
site described above. It works just fine.

The IIS Web site we created [for the ASP.NET application] serves up .html
files just fine (of course IIS is doing that). But it chokes on requests
for .aspx files - specifically stating that the requested page could not
be found. So I manually updated the .aspx - to - aspnet_isapi.dll mapping
to use the version [of the dll] located in the 64-bit .NET Framework
folder. Prior to me getting involved, it had been mapped to the 32-bit
.NET version. Upon making this change (map to 64-bit .NET isapi), we no
longer receive the "page could not be found" error, but we get an
incredibly cryptic message "%1 ... " message in the browser (forgive me,
it was several hours ago that I saw this at work and have forgotten the
rest of that cryptic message - in any case it offered absolutely no
obvious clues as to what the problem now is.

In any case, I'm wondering what to try next. Please check my thinking on
this and offer any suggestions:
Being that IIS is apparently running in some "32-bit compatability mode" I
am thinking that I should do this:
1. in IIS management console, go to the "Server Extensions" dialog and
deny the 64-bit ASP.NET and permit the 32-bit ASP.NET.

2. Update the script maps to map .aspx, .asmx, etc extensions to the
aspnet_isapi.dll in the 32-bit .NET Framework installation folder.

If I do the above, then we would have IIS in 32-bit compatability mode,
with .aspx etc mapped to the 32-bit aspnet_isapi.dll, and the Server
Extensions configured to permit the 32-bit ASP.NET rather than the 64-bit
ASP.NET. With these "planets" all in alignment I'm thinking this should
work.

When I get to work in the morning I"ll give the above a whirl. If it does
not work, then what should I be looking for?

Thanks.
 
re:
!> 5. In IIS management console, under "Server Extensions", there are two
!> entries for "ASP.NET" - one is listed as 64- bit, and the other is not
!> (presumably 32-bit). The 64-bit entry is "Permitted" while the other entry is "denied".

There's your problem, right there.

Set the 32-bit entry to "permitted" and, if you don't need 64-bit processing, set the 64-bit entry to "denied".

That should get you up and running in 32-bit mode, after you update the script maps to map
..aspx, .asmx, etc extensions to the aspnet_isapi.dll in the 32-bit .NET Framework installation folder.

re:
!> If it does not work, then what should I be looking for?

It will...and you won't have to look for anything else.





Juan T. Llibre, asp.net MVP
¿ Estas probando VS 2010 y ASP.NET 4.0 ?
Regístrate (gratis) en los Foros de VS 2010 y ASP.NET 4.0, en español
http://asp.net.do/foros/forums/
=====================================================
Jeremy S. said:
I'm a long-time asp.net developer who has been recruited to assist in getting a new server to serve ASP.NET
applications.

The facts as I understand them are as follows:

1. OS: Windows Server 2003R2 - 64-bit

2. IIS 6.0 running in 32-bit mode (I didn't even know this was possible until today). Apparently this configuration
decision was made buy some other folks who were configuring the server to have IIS run a 32-bit PHP site. Apparently
they felt it was necessary to run IIS in 32-bit mode to make this happen.

3. .NET Framework 3.5 is installed. When looking at the installation folders under C:\Windows\Microsoft.NET\... it
appears that the server has both 32-bit and 64-bit versions of the .NET Framework installed.

4. In IIS management console, the ASP.NET tab is missing.

5. In IIS management console, under "Server Extensions", there are two entries for "ASP.NET" - one is listed as 64-
bit, and the other is not (presumably 32-bit). The 64-bit entry is "Permitted" while the other entry is "denied".

6. There is only one ASP.NET Web site on this server - the site we are trying to work with here. The only other Web
site on the server is the php site described above. It works just fine.

The IIS Web site we created [for the ASP.NET application] serves up .html files just fine (of course IIS is doing
that). But it chokes on requests for .aspx files - specifically stating that the requested page could not be found. So
I manually updated the .aspx - to - aspnet_isapi.dll mapping to use the version [of the dll] located in the 64-bit
.NET Framework folder. Prior to me getting involved, it had been mapped to the 32-bit .NET version. Upon making this
change (map to 64-bit .NET isapi), we no longer receive the "page could not be found" error, but we get an incredibly
cryptic message "%1 ... " message in the browser (forgive me, it was several hours ago that I saw this at work and
have forgotten the rest of that cryptic message - in any case it offered absolutely no obvious clues as to what the
problem now is.

In any case, I'm wondering what to try next. Please check my thinking on this and offer any suggestions:
Being that IIS is apparently running in some "32-bit compatability mode" I am thinking that I should do this:
1. in IIS management console, go to the "Server Extensions" dialog and deny the 64-bit ASP.NET and permit the 32-bit
ASP.NET.

2. Update the script maps to map .aspx, .asmx, etc extensions to the aspnet_isapi.dll in the 32-bit .NET Framework
installation folder.

If I do the above, then we would have IIS in 32-bit compatability mode, with .aspx etc mapped to the 32-bit
aspnet_isapi.dll, and the Server Extensions configured to permit the 32-bit ASP.NET rather than the 64-bit ASP.NET.
With these "planets" all in alignment I'm thinking this should work.

When I get to work in the morning I"ll give the above a whirl. If it does not work, then what should I be looking for?

Thanks.
 
Juan T. Llibre said:
re:
!> 5. In IIS management console, under "Server Extensions", there are two
!> entries for "ASP.NET" - one is listed as 64- bit, and the other is not
!> (presumably 32-bit). The 64-bit entry is "Permitted" while the other
entry is "denied".

There's your problem, right there.

Thank you Juan and Ken - enabling 32-bit and mapping .aspx etc to the 32-bit
aspnet_isapi.dll is what was necessary.

Quick follow-up question:

The ASP.NET Tab is missing from the IIS MMC Console. From the bit of
googling that I did on this it seems like this [missing tab] is really
unimportant. Even so, I'd like to have it back. Is there a reasonably easy
way to get the ASP.NET tab to appear on this server?

Thanks
 
re:
!> Even so, I'd like to have it back. Is there a reasonably easy
!> way to get the ASP.NET tab to appear on this server?

I lived without that tab for a long time.
Unless you're willing to wipe the slate clean ( reformat ), there's no simple answer.

I used a workaround...

Check out the ASP.NET Version Switcher :

http://www.denisbauer.com/NETTools/ASPNETVersionSwitcher.aspx

It performs the same function as the ASP.NET tab in the IIS Manager.
Real intuitive UI, too...




Juan T. Llibre, asp.net MVP
¿ Estas probando VS 2010 y ASP.NET 4.0 ?
Regístrate (gratis) en los Foros de VS 2010 y ASP.NET 4.0, en español
http://asp.net.do/foros/forums/
=====================================================
Jeremy S. said:
Juan T. Llibre said:
re:
!> 5. In IIS management console, under "Server Extensions", there are two
!> entries for "ASP.NET" - one is listed as 64- bit, and the other is not
!> (presumably 32-bit). The 64-bit entry is "Permitted" while the other entry is "denied".

There's your problem, right there.

Thank you Juan and Ken - enabling 32-bit and mapping .aspx etc to the 32-bit aspnet_isapi.dll is what was necessary.

Quick follow-up question:

The ASP.NET Tab is missing from the IIS MMC Console. From the bit of googling that I did on this it seems like this
[missing tab] is really unimportant. Even so, I'd like to have it back. Is there a reasonably easy way to get the
ASP.NET tab to appear on this server?

Thanks
 
The missing ASP.Net tab is because that extension tab UI is a 32bit
DLL while the IIS Manager UI you are using is 64bit, so it cannot load
that DLL. If you launch the 32bit IIS Manager UI, you will see the
tab, but then the 32bit IIS Manager UI is not able to read the IIS
configuration file stored under %systemroot%\system32\inetsrv
\metabase.xml due to bitness compatibility issues (32bit process
cannot read %systemroot%\system32 or under). And of course you have
already encountered the fact that 32bit DLL cannot load in 64bit
process and vice-versa.

In short, crossing bitness "works" but is not pretty from an
integration perspective on Windows Server 2003. It is Windows Server
2008 and Windows 7 Server (aka Windows Server 2008 R2) which really
makes this stuff work well in IIS7 and look good doing it. IIS7
Preconditions allow you to make Server Core configuration which work
no matter how you toggle between 32bit/64bit -- you can't do that on
IIS6 unless you are careful and crafty with your configuration.


//David
http://w3-4u.blogspot.com
http://blogs.msdn.com/David.Wang
//



Juan T. Llibre said:
re:
!> 5. In IIS management console, under "Server Extensions", there are two
!> entries for "ASP.NET" - one is listed as 64- bit, and the other is not
!> (presumably 32-bit). The 64-bit entry is "Permitted" while the other
entry is "denied".
There's your problem, right there.

Thank you Juan and Ken - enabling 32-bit and mapping .aspx etc to the 32-bit
aspnet_isapi.dll is what was necessary.

Quick follow-up question:

The ASP.NET Tab is missing from the IIS MMC Console. From the bit of
googling that I did on this it seems like this [missing tab] is really
unimportant. Even so, I'd like to have it back. Is there a reasonably easy
way to get the ASP.NET tab to appear on this server?

Thanks
 
Back
Top