Automated Error Reporting for Outlook Add-ins?
hdp
Posts: 7
Hi,
I am testing SA for reporting exceptions within an Outlook plugin. It doesn't seem to work because it's a DLL and there is a warning saying to call ExceptionReporting.Report(Exception) manually.
Could you give me any directions about it? I think there are plenty of add-ons working with SA, so I assume it's easy but I am not finding any documentation on Internet.
Thanks,
HDP
I am testing SA for reporting exceptions within an Outlook plugin. It doesn't seem to work because it's a DLL and there is a warning saying to call ExceptionReporting.Report(Exception) manually.
Could you give me any directions about it? I think there are plenty of add-ons working with SA, so I assume it's easy but I am not finding any documentation on Internet.
Thanks,
HDP
Comments
If you're still having trouble after reading it, I'd suggest you get in touch with support@red-gate.com
I followed the instructions. But after processing the assembly (and copying it to the original name) I receive the error pointed in the subject.
Thanks,
HDP
If you just use ReportException.Report, this will do nothing on its' own. You must also process the assembly using SmartAssembly and enable error reporting, otherwise SA would not know which project to file the report under or who to send notification emails to, etc.
I also processed the DLL. What's strange is that I make it work in a simple project throwing the exception but not in a bigger project. I am doing the same in both projects: throwing a division by zero exception.
What can break smartassembly working? the other project has many references. If you can give me some direction it will be useful.
Thanks,
HDP
Thanks,
HDP
Or the new build of the dll is not being loaded and you're still loading the old one. If you do versioning, you can update the version number of the dll and attach a debugger to your office app and look to see the version of the dll being loaded.
i) Using IL DASM when it works with a simple add-in, SA adds a try/catch over our try/catch, and it catches System.Exception.
ii) Using IL DASM when it doesn't work with the real add-in, SA adds a try/catch over our try/catch, and it catches System.Web.HttpUtility (??? and this is not an exception).
Below is the code. Do you think a workaround for this exists?
Thanks,
HDP
i)
.try {
.try {
...
...
...
}catch [mscorlib]System.Excepton {
...
...
IL_003a: call void SmartAssembly.ReportException.ExceptionReporting::Report(class [mscorlib]System.Exception)
...
...
}
} catch [mscorlib]System.Exception
{
IL_0079: ldloc.0
IL_007a: ldloc.1
IL_007b: ldarg.0
IL_007c: call void SmartAssembly.SmartExceptionsCore.StackFrameHelper::CreateException3(class [mscorlib]System.Exception,
object,
object,
object)
}
ii)
.try {
.try {
...
...
...
}catch [mscorlib]System.Excepton {
...
...
IL_003a: call void SmartAssembly.ReportException.ExceptionReporting::Report(class [mscorlib]System.Exception)
...
...
}
} catch [System.Web]System.Web.HttpUtility
{
IL_004e: ldloc.0
IL_004f: ldarg.0
IL_0050: call void SmartAssembly.SmartExceptionsCore.StackFrameHelper::CreateException2(class [mscorlib]System.Exception,
object,
object)
}
If I remove references to System.Web.HttpUtility, now it points to
[System.Web.Services]System.Web.Services.WebServiceBindingAttribute
But I don't have a WebServiceBindingAttribute in my code. May be is used under a web reference (SOAP) that I am using.
Hope it helps in your way to find a solution.
Thanks,
HDP