public void Execute()
 {
     exception = null;
     try
     {
         try
         {
             proxy.UploadDataInternal(solution, null, checkExisting, !String.IsNullOrEmpty(contentEncoding), contentEncoding, filepath, ProgressCallback, progressStep);
             proxy.CommitAsyncUploadRecord(solution, sessionGuid);
         }
         catch (Exception e)
         {
             proxy.CommitAsyncUploadRecord(solution, sessionGuid, MakeExceptionString(e));
         }
     }
     finally
     {
         try
         {
             startedEvent.Dispose();
             System.IO.File.Delete(filepath);
         }
         catch
         {
         }
     }
 }