MYTH: You can attach the script debugger to the Exchange Event Service to debug Agent Scripts

There was a time when you could, in fact, use a script debugger with Exchange Event Service agent scripts.  However, in this age of higher security the need for more scalable solutions, the days of using a script debugger with agent script is long since past.  The following Exchange 5.5 documentation still exists on MSDN to make it seem possible...

Microsoft Exchange Event Scripting Agent
https://msdn2.microsoft.com/en-us/library/ms998510.aspx

Using the Microsoft Script Debugger
https://msdn2.microsoft.com/en-us/library/aa484635.aspx

The problem was that having unhandled errors launch the debugger blocks the event service and can be very problematic for a production server.  So we disabled the ability to debug it much like is described in the following article...

How to catch run-time errors in an ActiveX Script Host
https://support.microsoft.com/default.aspx?scid=kb;EN-US;232394

"...the script engine will then call IActiveScriptSiteDebug::GetApplication() to establish the debugging facilities for the scripting session. If IActiveScriptSiteDebug::GetApplication() fails, the script engine will conclude that debugging is not available on the machine, and revert to IActiveScriptSite::OnScriptError() for all error handling."

...In fact this is exactly what Exchange does, GetApplication() always returns E_FAIL thus disabling any attempt at using a script debugger with the Exchange Event Service...

Most people who support Exchange Event Service scripts never relied on the debugger anyway, rather they used logging to debug their scripts.  In reality these scripts should not be so complex that they can't be debugged by some simple logging.  If you are running Exchange 2000 or 2003 you should be developing with or migrating to Exchange Event Sinks anyway.  In Exchange 2007 the event service itself is gone.

Updated 1/22/2009: The Exchange 5.5 SDK has been pulled from MSDN so these links don’t work, you can read more here.