a.Error is actually an Exception object. Have you tried examining it to see what the exception details contain?
MessageBox.Show( a.Error.ToString() );
That will give you more information about what actually went wrong.
You may also find it helpful to read Eric Lippert's recent blog post on how to debug your code.