Home All Groups Group Topic Archive Search About

Access Violation Releasing CComPtr<IAzAuthorizationStore>

Author
21 Apr 2006 8:45 PM
Mike
I have a .NET remoting server that uses some unmanaged c++ under the
hood, and one portion of this is Authorization manager. I have a static
CComPtr<IAzAuthorizationStore> that sits around for me to do some
authorization checks from. When I stop the remoting application the
CComPtr tries to release the IAzAuthorizationStore interface when it
falls out of scope. I get an access violation way down in msxml3. Can
anyone give me some advice on how to work around this problem?

First-chance exception at 0x72e56c1d (msxml3.dll) in w3wp.exe:
0xC0000005: Access violation reading location 0x00000020.

The following is a stack trace:
     msxml3.dll!Base::_release()  + 0x3134
     msxml3.dll!HTMLWriter::Release()  + 0xd
     msxml3.dll!assign()  + 0x42
     msxml3.dll!_reference<WeakVector>::operator=()  + 0x11
     msxml3.dll!Document::finalize()  + 0x51
     msxml3.dll!NonGCBase::_delete()  + 0x42
     msxml3.dll!NonGCBase::_release()  + 0x4c56
     msxml3.dll!Document::_release()  + 0x8
     msxml3.dll!Document::Release()  + 0x35
     msxml3.dll!release()  + 0xc5f
     msxml3.dll!__comexport::~__comexport()  + 0x13
     msxml3.dll!DOMDocumentWrapper::`vector deleting destructor'()  +
0xd
     msxml3.dll!DOMNode::Release()  + 0x2c2
     msxml3.dll!DOMDocumentWrapper::Release()  + 0x11
     azroles.dll!XMLPersistClose()  + 0x11
     azroles.dll!AzPersistClose()  + 0x45
     azroles.dll!_AzpAzStoreFree@4()  + 0x11
     azroles.dll!_ObFreeGenericObject@4()  + 0x58
     azroles.dll!_ObDereferenceObject@4()  + 0x2b
     azroles.dll!_AzCloseHandle@8()  + 0xf0
     azroles.dll!CAzApplication::~CAzApplication()  + 0x24
     azroles.dll!ATL::CComObject<CAzAuthorizationStore>::`scalar
deleting destructor'()  + 0xd
     azroles.dll!ATL::CComObject<CAzAuthorizationStore>::Release()  +
0x27
>    LVAuthorizationManagerD.dll!ATL::CComPtrBase<IAzAuthorizationStore>::~CComPtrBase<IAzAuthorizationStore>()  Line 128 + 0x12    C++

LVAuthorizationManagerD.dll!ATL::CComPtr<IAzAuthorizationStore>::~CComPtr<IAzAuthorizationStore>()
+ 0x16    C++
     LVAuthorizationManagerD.dll!$E6()  + 0xd    C++
     LVAuthorizationManagerD.dll!_CRT_INIT(void *
hDllHandle=0x0dea0000, unsigned long dwReason=0x00000000, void *
lpreserved=0x00000001)  Line 234    C
     LVAuthorizationManagerD.dll!_DllMainCRTStartup(void *
hDllHandle=0x0dea0000, unsigned long dwReason=0x00000000, void *
lpreserved=0x00000001)  Line 288 + 0x11    C
     ntdll.dll!_LdrpCallInitRoutine@16()  + 0x14
     ntdll.dll!_LdrShutdownProcess@0()  + 0x121
     kernel32.dll!__ExitProcess@4()  + 0x3c
     kernel32.dll!7d5046fa()
     mscorsvr.dll!792377ec()
     mscorsvr.dll!79235cb3()
     mscorsvr.dll!792373f3()
     mscoree.dll!7901145b()
     msvcrt.dll!___crtExitProcess()  + 0x29
     msvcrt.dll!__cinit()  + 0xd3
     msvcrt.dll!_exit()  + 0x11
     msvcrt.dll!_exit()  + 0x11
     w3wp.exe!_wmainCRTStartup()  + 0x140
     kernel32.dll!_BaseProcessStart@4()  + 0x28

Thanks for your time,
Mike

AddThis Social Bookmark Button