Comments
Sort by recent activity
There is a different program to run when you want to use the command line version. It is in the same folder as SmartAssembly.exe, but called SmartAssembly.com (or {smartassembly}.com for version 4 and earlier). / comments
There is a different program to run when you want to use the command line version. It is in the same folder as SmartAssembly.exe, but called SmartAssembly.com (or {smartassembly}.com for version 4 ...
I think the best answer I can give is ....possibly.
It is possible to get SmartAssembly to add error reporting to a DLL, none of which are particularly nice (as described below, it is not sensible for the vast majority of situations, so we discourage it).
However, when I tried it for the situation you describe using COM between them it did not work. I'm not sure whether it is something to do with my test programs, or whether there is something on the way COM works for .NET is stopping it.
You may get it to work though - I've given the instructions below. / comments
I think the best answer I can give is ....possibly.
It is possible to get SmartAssembly to add error reporting to a DLL, none of which are particularly nice (as described below, it is not sensible ...
Ah, I've done a bit of digging and that is a bug.
WPF has an extra unhandled exception event in the framework to WinForms. The events common between WPF and WinForms will work on WPF, however, in WPF they are both raised at a point where the application can't continue (it is possible to continue when the extra event in WPF is raised).
I've logged a bug in our tracking system (SA-376) for our developers to fix.
The only workarounds I can suggest in the meantime is either use the "ReportExceptionAttribute" on every method (which I know would be a real pain), or if you buy the Pro version you just need to add a handler for the missing event:
Somewhere near the start of your application add a line:
System.Windows.Threading.Dispatcher.CurrentDispatcher.UnhandledException += new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(App_DispatcherUnhandledException);
and then add the method to handle the event
void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
e.Handled = true;
SmartAssembly.ReportException.ExceptionReporting.Report(e.Exception);
}
(note you do need the Pro edition as the SDK, which ReportException.ExceptionReporting is part of, requires the Pro edition or Team package) / comments
Ah, I've done a bit of digging and that is a bug.
WPF has an extra unhandled exception event in the framework to WinForms. The events common between WPF and WinForms will work on WPF, however, in W...
What type of application are your protecting?
Are you doing any global error handling yourself? / comments
What type of application are your protecting?
Are you doing any global error handling yourself?
Any non-recoverable exception will stop the application from continuing (as defined by the framework) - so ExecutionEngineException, StackOverflowException, and OutOfMemoryException.
Also if the exception occurs within the assembly's entry point then you wont be able to continue.
Unfortunately it is not possible to specify in the UI which exceptions to continue from. However, if you have the Pro version of SmartAssembly it is very easy to customise the error reporting template and add a little bit of logic which changes the value of ReportExceptionEventArgs.tryToContinue (as passed to OnReportException) depending on the exception type.
The throw is required unless you apply the ReportExceptionAttribute to the methods (which mean the exception is caught, reported but not propagated). SmartAssembly is designed to preserve the exception handling semantics of your code so that if you have your own try/catch block for a particular exception SmartAssembly will not interfere with it, for this reason the exception is left to propagate until nothing else handles it. / comments
Any non-recoverable exception will stop the application from continuing (as defined by the framework) - so ExecutionEngineException, StackOverflowException, and OutOfMemoryException.
Also if the ex...
A few questions:
Which protections are you applying to your assembly?
Is the type that is failing to be Serialized in the main assembly or in a separate dll? If it is in a separate dll are you merging it into the main assembly as this could cause issues for serialization.
Does the type that is failing to be Serialized have an attribute within the System.Xml.Serialization namespace, as SmartAssembly will pick this up and be very careful with the type. / comments
A few questions:
Which protections are you applying to your assembly?
Is the type that is failing to be Serialized in the main assembly or in a separate dll? If it is in a separate dll are you merg...
Yay for random bugs which fix themselves. Glad it is all working now.
I've formally added the RunOnException to our tracker system (logged as SA-320), so hopefully you should have it back in one of the forthcoming versions. / comments
Yay for random bugs which fix themselves. Glad it is all working now.
I've formally added the RunOnException to our tracker system (logged as SA-320), so hopefully you should have it back in one of...
Unfortunately RunOnException is not available any more although we may look at adding it back into the new version.
As long as you have set the email address within the SmartAssembly project for your application (the email address is now defined per project) and you have set the SmtpServer setting in the web config it should work.
Do you get any error messages in your Smtp Server log?
Does the website application have permission to send mail on the Smtp Server? / comments
Unfortunately RunOnException is not available any more although we may look at adding it back into the new version.
As long as you have set the email address within the SmartAssembly project for yo...
That shouldn't happen.
What have you altered on the template?
Is everything still obfuscated in the Error Report or just certain parts? / comments
That shouldn't happen.
What have you altered on the template?
Is everything still obfuscated in the Error Report or just certain parts?