IIS - running 32bit on IIS 7 64 bit - Asked By Paul T on 26-Jan-12 04:14 PM

Hi IIS 7 expert!

I am desperately searching the Internet for a solution but none avail. I found similar but the suggestions did not help my situation.

I have a website that works well on IIS 6 on window 2003. We are upgrading to server 2008 running IIS 7 64 bit.
I have migrated the codes to the new server. I have turned on the 32bit support to "true". I used window authentication.

Problem: the website authenticates and allows user to create orders fine but when they commit the order (the final step) it asks for credential again and then redirect to a default page rather than display the confirmation of the order.

I looked at the event log and see that whenever a commit button is entered (which calls a result page to be displayed) my application pool terminated unexpectedly and exited with code 0xc0000374.

Please help!
Robbe Morris replied to Paul T on 26-Jan-12 05:59 PM
My guess is that you have an untrapped error in your code somewhere (perhaps a Response.Redirect without an immediate return statement out of the method).  If you can, post some of the code where you process the order and redirect to your confirmation page.
Paul T replied to Robbe Morris on 26-Jan-12 06:21 PM
here is a relevant portion of the script.

      rc = RPC.rpcCreateNew(Session("CompanyNbr"), Session("workordnbr"), _
        Session("workordnbr2"), Session("workordnbr3"), CStr(Date), _
        Session("contactname"), CStr(Session("PoleCounter")), CoAlreadyShift, _
        StateMuniInd, PriorityInd, _
        PoleSeqArray, PoleWorkType, PoleWork, PoleComments, _
        PoleHitInd, PoleDateHit, PoleNumbHgwy, _
        NewNum, status, failedPolelist, miscStatus)
        
        Session("status") = status
        
        If Len(trim(failedPolelist)) > 0 Then
            Session("failedPolelist") = failedPolelist
        Else
            Session("failedPolelist") = ""
        End If
        
        If len(trim(miscStatus)) > 0 Then
            Session("miscStatus") = miscStatus
        Else
            Session("miscStatus") = ""
        End If
        '''
        
     ClearSessionVars    ' GCB Aug 24, 2025 -- assures un-needed session variables are cleared, even if session is aborted (no logout)
        
    
        Session("rc") = CInt(rc)
        Session("NewNum") = NewNum

        If rc = 0 Then    Response.Redirect "newresult.asp"

    Else

        Response.Redirect "../default.asp"

    End If

ElseIf Len(Request("ChangeEntryButton")) Then
    
    Response.Redirect "new.asp"

ElseIf Len(Request("CancelButton")) Then

    Response.Redirect "../default.asp"

End If
Robbe Morris replied to Paul T on 26-Jan-12 08:37 PM
You'll want to do

 Response.Redirect "blah.asp",false
 return (or End Sub whatever VB.NET uses these days

 This enables you to gracefully exist the page without aborting the thread.
Re - Venkat K replied to Paul T on 26-Jan-12 09:09 PM
The worker process seems to be crashed at that instant. Hope you can find some useful information here:
http://www.fromthefiefdom.com/troubleshooting-an-iis-w3wpexe-crash-with-ntd

Thanks
Sri K replied to Paul T on 27-Jan-12 01:11 AM

In IIS6, this was a pain area. On a 64-bit Windows 2003 Server, you cannot run worker processes in both 32-bit mode and as well as 64 bit mode. Either only one of them was possible. This was possible by the below Metabase Key which would be applied to the W3SVC/AppPools node.

W3SVC/AppPools/enable32BitAppOnWin64 : true | false

http://blogs.msdn.com/b/rakkimk/archive/2007/11/03/iis7-running-32-bit-and-64-bit-asp-net-versions-at-the-same-time-on-different-worker-processes.aspx

Paul T replied to Sri K on 27-Jan-12 11:20 AM
my website had no issues on IIS 6. It becomes an issue when we are upgrading to IIS 7.
Additionally, I only have one app pool and it is set to run as 32bit.