Access Violation Releasing CComPtr<IAzAuthorizationStore>



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> as a member variable to a class that is never
instantiated. 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? Stack trace follows.

(I have a mini dump available is necessary)

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

.



Relevant Pages

  • Access Violation Releasing CComPtr
    ... I have a .NET remoting server that uses some unmanaged c++ under the ... and one portion of this is Authorization manager. ... msxml3.dll!DOMDocumentWrapper::`vector deleting destructor'() + ... hDllHandle=0x0dea0000, unsigned long dwReason=0x00000000, void * ...
    (microsoft.public.platformsdk.security)
  • Access Violation Releasing CComPtr
    ... I have a .NET remoting server that uses some unmanaged c++ under the ... and one portion of this is Authorization manager. ... msxml3.dll!DOMDocumentWrapper::`vector deleting destructor'() + ... hDllHandle=0x0dea0000, unsigned long dwReason=0x00000000, void * ...
    (microsoft.public.dotnet.framework)