K
Keith
All,
I have been told this is an ASP.NET issue and not an IIS
issue, so I am posting this here.
I have a problem with ASP.NET returning an HTTP 500 error
when trying to run ASPX pages on Windows Server 2003
Enterprise Edition Only.
This works on Windows 2000, Windows 2003 Web Edition and
Standard Edition.
The error is a peculiar one.
We have installed our application on Windows Server 2003
Web Edition and it installs and runs fine. I have also
installed this Windows Server 2003 Standard edition and
it installed and ran fine. I then installed it on
Windows Server 2003 Enterprise edition and that is when
the problem happens. (keep in mind this is strange)
Our application has ASP, COM, and ASP.NET, along with a
couple 3rd party controls.
If I pull up our application after an iisreset (or reboot
for that matter) before I hit any asp.net page,
everything works fine until I try to go to the ASP.NET
portion of the application. Any time I hit an ASP.NET
page I will get a server application unavailable error
message on the screen. It also says to look in the event
log for more information... There are no errors in the
event viewer, but there is a 500 error message in the IIS
log file for the asp.net page I am trying to work with.
I thought it may be something that we were doing in the
ASP, so I tried calling a hello.aspx page that would only
output the current date/time. Again, I got the server
application unavailable message.
Here is where the wierdness starts. If I run an
iisreset (or reboot) and go to the hello.aspx page before
going into our application, every thing works as it is
supposed to including the ASP.NET portion of the
application.
This does not happen unless I call our application that
calls a COM object.
For example, if I do an iisreset (or reboot) and I go to
hello.asp (which outputs the date and time) and then go
to hello.aspx (which is the same file as before)
everything works fine. I can then go into our
application and pull up all content including the asp.net
portion (because the asp.net was pulled up prior to going
into the application).
Why would this work just fine in the other versions of
Windows server 2003, but not in Windows Server 2003
Enterprise edition?
In addition to this, I have gone as far as running a
FileMon to see if there was a file that I didn't have
permissions to run. Here is what I found... (I am
cutting and pasting from a post in the IIS newsgroup, so
I am sorry for anything that doesn't sound right)
We are using 10 of our own custom DLLs. There are also
some third party DLLs (about 5). But, it doesn't matter
how many DLLs I load. The first page only loads 1 dll
(our Common DLL). That dll will perform string
concatenation along with reading an INI file and some
Kernal Calls. The calls are primarily to
GetPrivateProfileString.
As soon as I load this DLL, I get the error. I haven't
tried to create a simple DLL that has 1 method and
returns "Hello World" to see if the problem will still
exist. I may try this later today.
When I called MS Support to get the HotFix that you had
recommended before http://support.microsoft.com/?
id=821157, I was told by the support person that
he didn't think that the hot fix would solve my problem.
After providing a little more information, He told me to
unregister the shfusion.dll file and navigate to the path
that was showing to give me errors in the FileMon to see
if the path existed. If the path existed, he said to
make sure that the user had the appropriate security on
that folder.
After unregistering the shfusion.dll file I was able to
set permissions on the assebly directory. I added the
IIS_WPG group and gave it full control.
The errors I received in the FileMon run are...
Process:
w3wp.exe:2652
Request:
Directory
Path:
C:\windows\assembly\gac\system.web\1.0.500.0_b03f5f7f11d50
a3a\
Error:
No Such File
Other:
FileBothDirectoryInformation: system.web.INI
The second one was...
Process:
w3wp.exe:2652
Request:
Query Information
Path:
C:\windows\assembly\NativeImages1_v1.1.4322\System.web
Error:
File Not Found
Other:
Attributes: Error
The NativeImages1_v1.1.4322\System.Web directory does not
exist.
and the
C:\windows\assembly\gac\system.web\1.0.500.0_b03f5f7f11d50
a3a\
did not exist, but the following directory did
C:\WINDOWS\assembly\GAC\System.Web\1.0.5000.0__b03f5f7f11d
50a3a
As a side note, If I change the account that my
Application pool is running as to either Local System or
Local Service accounts have no problems running this
code, so the only account that gives me problems would be
the Network Service Account. I would prefer not to run
the Application pool under Local System or Local Service
but this will work as a workaround until we find a
permanent solution.
I originally thought this may be a permissions issue
until I ran into what I described earlier in my
post. Is it possible this could still be a
permissions issue? If so, what is missing permissions in
2003 Enterprise that is there in Web and Standard
Editions?
Thanks,
Keith
I have been told this is an ASP.NET issue and not an IIS
issue, so I am posting this here.
I have a problem with ASP.NET returning an HTTP 500 error
when trying to run ASPX pages on Windows Server 2003
Enterprise Edition Only.
This works on Windows 2000, Windows 2003 Web Edition and
Standard Edition.
The error is a peculiar one.
We have installed our application on Windows Server 2003
Web Edition and it installs and runs fine. I have also
installed this Windows Server 2003 Standard edition and
it installed and ran fine. I then installed it on
Windows Server 2003 Enterprise edition and that is when
the problem happens. (keep in mind this is strange)
Our application has ASP, COM, and ASP.NET, along with a
couple 3rd party controls.
If I pull up our application after an iisreset (or reboot
for that matter) before I hit any asp.net page,
everything works fine until I try to go to the ASP.NET
portion of the application. Any time I hit an ASP.NET
page I will get a server application unavailable error
message on the screen. It also says to look in the event
log for more information... There are no errors in the
event viewer, but there is a 500 error message in the IIS
log file for the asp.net page I am trying to work with.
I thought it may be something that we were doing in the
ASP, so I tried calling a hello.aspx page that would only
output the current date/time. Again, I got the server
application unavailable message.
Here is where the wierdness starts. If I run an
iisreset (or reboot) and go to the hello.aspx page before
going into our application, every thing works as it is
supposed to including the ASP.NET portion of the
application.
This does not happen unless I call our application that
calls a COM object.
For example, if I do an iisreset (or reboot) and I go to
hello.asp (which outputs the date and time) and then go
to hello.aspx (which is the same file as before)
everything works fine. I can then go into our
application and pull up all content including the asp.net
portion (because the asp.net was pulled up prior to going
into the application).
Why would this work just fine in the other versions of
Windows server 2003, but not in Windows Server 2003
Enterprise edition?
In addition to this, I have gone as far as running a
FileMon to see if there was a file that I didn't have
permissions to run. Here is what I found... (I am
cutting and pasting from a post in the IIS newsgroup, so
I am sorry for anything that doesn't sound right)
We are using 10 of our own custom DLLs. There are also
some third party DLLs (about 5). But, it doesn't matter
how many DLLs I load. The first page only loads 1 dll
(our Common DLL). That dll will perform string
concatenation along with reading an INI file and some
Kernal Calls. The calls are primarily to
GetPrivateProfileString.
As soon as I load this DLL, I get the error. I haven't
tried to create a simple DLL that has 1 method and
returns "Hello World" to see if the problem will still
exist. I may try this later today.
When I called MS Support to get the HotFix that you had
recommended before http://support.microsoft.com/?
id=821157, I was told by the support person that
he didn't think that the hot fix would solve my problem.
After providing a little more information, He told me to
unregister the shfusion.dll file and navigate to the path
that was showing to give me errors in the FileMon to see
if the path existed. If the path existed, he said to
make sure that the user had the appropriate security on
that folder.
After unregistering the shfusion.dll file I was able to
set permissions on the assebly directory. I added the
IIS_WPG group and gave it full control.
The errors I received in the FileMon run are...
Process:
w3wp.exe:2652
Request:
Directory
Path:
C:\windows\assembly\gac\system.web\1.0.500.0_b03f5f7f11d50
a3a\
Error:
No Such File
Other:
FileBothDirectoryInformation: system.web.INI
The second one was...
Process:
w3wp.exe:2652
Request:
Query Information
Path:
C:\windows\assembly\NativeImages1_v1.1.4322\System.web
Error:
File Not Found
Other:
Attributes: Error
The NativeImages1_v1.1.4322\System.Web directory does not
exist.
and the
C:\windows\assembly\gac\system.web\1.0.500.0_b03f5f7f11d50
a3a\
did not exist, but the following directory did
C:\WINDOWS\assembly\GAC\System.Web\1.0.5000.0__b03f5f7f11d
50a3a
As a side note, If I change the account that my
Application pool is running as to either Local System or
Local Service accounts have no problems running this
code, so the only account that gives me problems would be
the Network Service Account. I would prefer not to run
the Application pool under Local System or Local Service
but this will work as a workaround until we find a
permanent solution.
I originally thought this may be a permissions issue
until I ran into what I described earlier in my
post. Is it possible this could still be a
permissions issue? If so, what is missing permissions in
2003 Enterprise that is there in Web and Standard
Editions?
Thanks,
Keith