Note that there are some explanatory texts on larger screens.

plurals
  1. POUsing a C# class library as a COM+ server application
    primarykey
    data
    text
    <p>I created a .NET class library in C# and exposed it to COM. It works fine as an in-proc COM server. However I want to use it as an out-proc COM server to have it in a separate process.</p> <p>To do so I try to create a COM+ application. I created an empty COM+ application and added the classes implemented in the class library into it. When I call CoCreateInstance() to instantiate a class implemented in the library, the COM+ surrogate process encounters an access violation and terminates (crash dump folows).</p> <p>Are there any special steps needed to be taken to create a class library that can be used as an out-proc COM server under COM+?</p> <p>The COM+ surrogate process crashes with the following crash dump:</p> <p>Exception: C0000005<br> Address: 0x000C1618<br></p> <p>Call Stack:<br> ! + 0xC1618<br> mscorwks!Ordinal79 + 0xE41C<br> mscorwks!Ordinal79 + 0xE4AD<br> mscorwks!CoInitializeEE + 0x563F<br> mscorwks!CoInitializeEE + 0x5672<br> mscorwks!CoInitializeEE + 0x57F1<br> mscorwks!CoInitializeCor + 0x210E<br> mscorwks!CoInitializeCor + 0x48D<br> mscorwks!Ordinal79 + 0x16D2<br> mscorwks!ReleaseFusionInterfaces + 0x20B28<br> COMSVCS! + 0xC29A2<br> COMSVCS! + 0xC2BDA<br> COMSVCS!CoCreateStdTrustable + 0xCB10<br> ole32!CoMarshalInterface + 0x2642<br> ole32!CoInstall + 0x673<br> ole32!CoQueryAuthenticationServices + 0x1F44<br> ole32!CoQueryAuthenticationServices + 0x2862<br> ole32!CoWaitForMultipleHandles + 0xC267<br> ole32!CoQueryClientBlanket + 0x16CE<br> ole32!CoCreateObjectInContext + 0xC8E<br> ole32!CoInstall + 0x87A<br> ole32!CoWaitForMultipleHandles + 0x10479<br> ole32!CoMarshalInterface + 0x2808<br> ole32!CoGetTreatAsClass + 0xBE7<br> ole32!CoGetTreatAsClass + 0xB9E<br> ole32!CoMarshalInterface + 0x28F2<br> ole32!CoMarshalInterface + 0x2642<br> COMSVCS!CoCreateStdTrustable + 0x106A4<br> ole32!CoMarshalInterface + 0x2642<br> ole32!CoPopServiceDomain + 0x14FE<br> RPCRT4!CheckVerificationTrailer + 0x70<br> RPCRT4!NdrStubCall2 + 0x215<br> RPCRT4!CStdStubBuffer_Invoke + 0x82<br> ole32!StgGetIFillLockBytesOnFile + 0xFC92<br> ole32!StgGetIFillLockBytesOnFile + 0xFC3C<br> ole32!CoRevokeClassObject + 0xA3E<br> ole32!CoRevokeClassObject + 0x963<br> ole32!StgGetIFillLockBytesOnFile + 0xF872<br> ole32!WdtpInterfacePointer_UserMarshal + 0x80E<br> ole32!StgGetIFillLockBytesOnFile + 0xF792<br> RPCRT4!NdrGetTypeFlags + 0x1C9<br> RPCRT4!NdrGetTypeFlags + 0x12E<br> RPCRT4!NdrGetTypeFlags + 0x5A<br> RPCRT4!CreateStubFromTypeInfo + 0x2D7<br> RPCRT4!CreateStubFromTypeInfo + 0x318<br> RPCRT4!NdrConformantArrayFree + 0x2CB<br> RPCRT4!NdrConformantArrayFree + 0x20F<br> RPCRT4!I_RpcBCacheFree + 0x61C<br> RPCRT4!I_RpcBCacheFree + 0x43E<br> RPCRT4!I_RpcBCacheFree + 0x604<br> kernel32!GetModuleFileNameA + 0x1B4<br></p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload