CCS HELPDESK 4.0
Manual Installation of the Event Sink for
Exchange 2000/2003/2007
Crow Canyon Systems, Inc.
support@crowcanyon.com
NOTE: For Exchange Servers that run on Windows 2003 and above, there is
an EventSink Setup file that can be run. The instructions below are for Manual
Installation of the Event Sink on Windows 2000 Server. The procedure can also
be used on Windows 2003 and later servers, in case the EventSink Setup EXE does
not run for some reason.
Exchange 2000, 2003, and 2007 use Event Sinks to convert emails into new tickets. Event Sinks react to events in the Exchange public folders, such as the addition or deletion of a message. Event Sinks are compiled DLLs installed as a COM+ Components on the Exchange Server. They are faster and more efficient than the folder Agents and scripts that were used with the Microsoft Exchange Event Service in Exchange 5.5. We provide “CCSHD40.DLL” to convert emails to Help Desk tickets as part of the CCS HelpDesk program.
There
are five steps to installing the Event Sink:
A. Choose or set up User
Account for running Event Sinks
B. Install and register
the DLL
D. Add Components to the
COM+ Application
E. Add an Event
Registration to the Help Desk folder
Users can simply send an
email to the Help Desk folder and the Event Sink will convert the email into a
new Help Desk Ticket.
Accepting
emails from inside the organization
For internal users, you can show the Help Desk in the Global Address List. Users either select it from the address list or just type “Help Desk” in the To: line. To allow your users to do this, you must show the Help Desk folder in the Address Book.
External users can send
to an SMTP address you set up for the Help Desk folder. To allow the folder to
accept emails from external users, give Anonymous at least Contributor
permissions to the folder. To set up an email address, open Exchange System
Manager, find the Help Desk folder under Folders/Public Folders, go to
Properties and check the E-mail Addresses tab for the SMTP address.
Using
a Web form to generate emails
CCS HelpDesk comes with a full-fledged web application that
offers users a way to enter and view tickets without using Outlook client. It
runs on an OWA server and users must login with a Windows account.
Another way to use the Web is to create a simple Web form that users can fill out without logging in. When the form is submitted, a script creates an email out of the web form and sends it to the Help Desk folder. The Event Sink will treat this email like any other email and convert it into a new Help Desk ticket.
The
advantage to this is that users do not need a Windows accounts. Anyone who can
access your Web server can fill out a ticket. The web form can run on any web
server. This is a good way to service outside customers by providing a “Send
email to support” link on your web site. You can set up an Intranet link this
way also.
INSTALLATION
Exchange
Server Event Sinks run out-of-process and therefore some form of authentication
is required before the code in the DLL can execute. For the Event Sink to run
correctly, you must specify a user account under whose security context the
code will execute. This account is specified when setting up the Component in
Step C below.
The
code will always run with the permissions of this user account, regardless of
who wrote the DLL or who installed it. Anything the account can do, the code
can do, and conversely, anything the account is denied from doing, the code
will be denied from doing. The account needs:
To
explain:
Place the DLL in a directory on the Exchange Server. We recommend the “\Program Files/Exchsrvr/Bin” directory on your system drive so that the DLL is with other Exchange-related DLLs. Once the DLL is copied to the server, it needs to be registered using Regsvr32. This utility comes with Windows Server and should already be in the System32 directory.
To use Regsvr32, go to Start, Run, then type regsvr32 “YourPath\CCSHD40.DLL” in the box (substituting in the full path to the DLL for “YourPath”). Regsvr32 returns a success message if the DLL is registered successfully.




5.
On
the “Set Application Identity” page, select “This user:” and Browse for the
appropriate account for running Event Sinks, along with the password.
ON EXCHANGE 2000

ON
EXCHANGE 2003:

6. ON EXCHANGE 2003/2007:
Press Next
on the next screen, since the CreaterOwner role is the only one needed.

7. ON EXCHANGE 2003/2007:
Press
Next on the next screen, since the account is already
in the CreatorOwner role.

8. Select “Finish” on the last Thank you
screen.
With
the new COM+ application created, you can now add components to it.






There are a variety of methods to create an Event Registration in a public folder. We offer two methods here. One is using the regevent.vbs on the command line. The other is using a utility in the Exchange 2000/2003 SDK. You can either of these two methods.
Notes: This must be done directly on the Exchange Server and not through Terminal Services. Also, you must be log in with an account that has an associated mailbox that is Owner of the Help Desk folder. See Event Registration Errors at the end of this section if you run into any errors.
1. USING REGEVENT.VBS
You can use RegEvent.vbs to register Event Sinks in the Help Desk folder. For the nitty-gritty details on using RegEvent.vbs see this link. You need to have RegEvent.vbs, which is included in the CCS HelpDesk package (it is also in the Exchange Server SP1, the Exchange SDK and other places).
To use RegEvent.vbs, run Cscript on the command line. The syntax to add an Event Registration to the Help Desk folder is as follows (all on one line):
Cscript
“path\RegEvent.vbs” Add OnSave CCSHD40.AsyncEvents “file://./backofficestorage/domain/public
folders/help desk/regevent.eml”
Explanation of parts in bold:
“path\RegEvent.vbs” = the full path to the RegEvent.vbs
domain = domain needs to be your email domain. This is often also your Active Directory domain, but not always.
help desk = you must put in the correct path to the “Help Desk” folder. The above example assumes Help Desk is right under the All Public Folders. If not, you must put in each folder level, such as “file://./backofficestorage/domain/public folders/IT Support/help desk/regevent.eml”.
Here
is an example with RegEvent in the root of C drive, a domain of
singleflower.com, and the Help Desk right under All Public Folders (all on one
line):
Cscript “C:\RegEvent.vbs” Add OnSave CCSHD40.AsyncEvents “file://./backofficestorage/singleflower.com/public folders/help desk/regevent.eml”
To see what Event Registrations are on the Folder, use “Enum” instead of “Add” as follows (all on one line):
Cscript “C:\RegEvent.vbs” Enum “file://./backofficestorage/singleflower.com/public folders/help desk”
To delete all Event Registrations on the folder, use this (all on one line):
Cscript “C:\RegEvent.vbs” Delete “file://./backofficestorage/singleflower.com/public folders/help desk”
2. USING THE EXCHANGE SDK
A. One of the Exchange SDK tools is “Exchange Explorer”. Start this utility and log in.
B. In the Exchange Explorer screen, choose the Help Desk folder.
C. From the File menu, choose “Add Event Registration”
D. The “Exchange Store Event Sink Registration” wizard starts:
I. The name you give the sink is not critical and is used only for later reference.

II. The default kind of event is “Asynchronous”, which is what you want.

III. Check “OnSave”

IV. Leave this at the defaults as shown below:

V. Select “COM Event Sink”

VI. The “class” is “CCSHD40.AsyncEvents”

VII. Finally, there is the Finish screen. If there
are any errors, it will tell you after you press Finish.
In the Details view of Exchange Explorer, the folder Items can be listed. The event registration shows up like other messages, except that it is hidden, has a different icon and its DAV:contentclass is "urn:content-class:storeeventreg". You can right-click the event registration item to modify it. It also can be deleted from this screen.

“Error Opening Connection”
This means the URL (the part that starts with file://) is wrong. This is usually the domain portion. Try another domain. It should be the email domain of your Exchange server, not the Active Directory domain. See also Q286336 if you have subdomains.
“Error Opening Connection : -2147217895 Object or data matching the name,
or selection criteria was not found within the scope of this operation.”
This is usually because you are attempting the Event Registration while logged in with an account that does not have an associated mailbox with Owner permissions on the Help Desk folder.
“Error Committing Transaction : -2147024891 Access is denied.”
This is usually because you are attempting the Event Registration while logged in with an account that does not have an associated mailbox with Owner permissions on the Help Desk folder.
“Error Committing Transaction : -2141913011 Event Registration failure: The specified event sink (ProgID: % 1) is not allowed to run in-proc.”
This usually means the COM+ component was not added as a Server application. It needs to be a server application, not a library application. Right-click the component in Component Services, go to Properties and set it to a server application on the Application tab.
Troubleshooting the Event Sink
After installing the Event Sink, you should be able to send an email to the Help Desk folder and it should get converted to a new Help Desk ticket. This usually only takes a few seconds. If this does not work, here are some troubleshooting tips:
The email conversion is a two-step process. First, the email has to arrive at the folder. After arriving, it gets converted into a ticket.
Emails do NOT arrive at the
folder
If emails do not arrive in the folder, then the error is in the configuration of the Help Desk folder, not in the Event Sink. The folder must be Mail-enabled in the Exchange System Manager. If you want the folder to receive mails from outside customers, then the Anonymous permission on the Help Desk folder must be set to Contributor.
The email address of the Help Desk folder can be set in Exchange System Manager. This address could be used by people inside or outside your company. For people inside your company, you can set the folder to show in the Global Address List. If it is listed in there, then your users can find it easily when sending an email.
Another consideration is if there are multiple Exchange servers with replicas of the Help Desk folder. If that is the case, the email could be arriving at another server different than the one with the Event Sink installed. In that case, put the Event Sink on both servers or reduce it to one replica.
Emails arrive at the folder but
are converted into regular Tasks
The most common reason for this is that you are using the wrong DLL. Make sure you have the correct DLL, that is, the one that matches the version of the program that you are using, and put it in place of the existing DLL that you have there now.
Emails arrive at the folder but
are not converted
If the emails do arrive in the Help Desk folder, but are not converted into tickets, then that could be an issue with the Event Sink configuration.
Check COM+ Application
Account
The account that the COM+ Application runs under needs to be mail-enabled, and its Exchange mailbox must be Owner of the Help Desk folder. This can be confusing, The COM+ Application account is a Windows account, and the Help Desk permissions are given to mailboxes. The two permissions have to be coordinated -- the Windows account on the COM+ Application needs to have its mailbox be Owner of the Help Desk folder.
Make sure registered
DLL matches DLL in Component Services
Another crucial part is that the
DLL is installed and registered on the server. It is very likely that it is,
otherwise you could not add it under the Components folder in the COM+
Application. However, there are times when it gets registered twice. Therefore,
you can check the Class ID in the registry against the Class ID in the
Component, as follows:
Go to Regedit on the Exchange Server, then HKEY_Classes_Root. Find the DLL in the list (this will be the same listing as under the Components folder in the COM+ Application, something like “CCSHD40.AsyncEvents”). Under it is a Clsid folder. See what the number is there and compare it to the number found on the Component Service. These long GUID numbers should match.

![]()
![]()
Compare to number in the component under Components of the COM+ Application:

Right-click component and go to Properties:

Check if there is more
than one Event Registration on the Help Desk folder
There should only be one Event Registration for this Event Sink on the Help Desk folder. You can see this in Exchange Explorer. Check the full list of Items in the Help Desk and make sure there is only one with the icon of the hammer lying across a piece of paper.

The only reason there might be two Registrations is if they are for different Event Sinks. You can look in the Property of the Event Registrations for the SinkClass and make sure a) that it is correct; and b) that there is only one Registration for that SinkClass.

Event Sink Error Handling
The Event Sink contains Error Handling code that writes errors out to the Event Viewer on the Exchange Server where it is running. The errors have a source of “VBRuntime” and Event ID of 1.

The error details screen gives important information in the description:
