Event Registration failure

Event Registration failure

Post by oystei » Thu, 03 Feb 2005 21:26:46

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
"file://./backofficestorage/domain.com/public folders/myFolder/BMArchiveReg.eml"
"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:
Event: ontimer
Sink: myExchange.Archiver
file://./backofficestorage/domain.com/public folders/myFolder/BMArchiveReg.eml
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

Event Registration failure

Post by Tom Rizzo » Sat, 26 Feb 2005 10:19:28

ounds like possibly a COM+ configuration error. You registered the
component that implements your timer as a COM+ component and enabled
security access checks? I would dump the COM+ package from your dev server
for the timer component and install it on your production to see if that
fixes it.

If not, download the training application sample from my book linked below
(Chapter 15) and run the setup. I install programmatically a timer event as
part of that. If that installs, then it's a config error.

Looking for a good book on programming Exchange, Outlook, ADSI and
SharePoint? Check out http://www.microsoft.com/MSPress/books/5517.asp

"?ystein Urdahl" < XXXX@XXXXX.COM > wrote in message
news: XXXX@XXXXX.COM ...