I have a COM+ application with two components. Component "A" implements the
IExStoreAsyncEvents and component "B" implements the IExStoreSystemEvents. The
application is set up as a server application, and I want to register both
components to be activated on the same folder in the public folder store.
The only implemented method from the interface in "A" is OnSave(...) and in
"B" OnTimer(...), the other methods from the interfaces are empty.
"A" registers without a hitch on the folder and does it's job as expected. The
"B" component on the other hand fails the registration on the production
server, but works as it's supposed to on the development server.
Output from registration (re-wrapped):
C:\Scripts>cscript RegEvent.vbs add ontimer myExchange.Archiver
"1/1/05 04:00:00 AM" 1
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
New Event Binding created:
Error Commiting Transaction : -2141913011 Event Registration failure: The
specified event sink (ProgID: %1) is not allowed to run in-proc.
Also if I comment out all the code inside every method (leaving the signature
of the dll the same) and only has code in the constructor writing to a file
that it's triggered, then it's no problem registering it and it triggers just
as it's supposed to.
From this I'm left wondering what's wrong.
* I think I have all the rights I need since "A" works as it should and they
operate on the same folder.
* Since the COM+ application is set up as a server application the "B"
component should run out-of-process and not trigger an "in-proc" error.
* The code is correct since it works on the development server.
Any help is greatly appreciated.
Supplementary information on what the components do:
"A" Triggers on messages are they are saved to the store for the first time.
Changes the message class and may update some fields.
"B" Triggers on a timely basis. Iterates over all the folders in the
sub-tree and finds all messages older than a given age and without the
"Follow-up" flag set. This is done using SQL. These messages are then moved
to a subfolder.
I.e. the messages in myFolder/ (where the registration is) are moved to