Index: branches/OaaS/HeuristicLab.Clients.Hive.Slave.AzureClient/3.3/WorkerRole.cs
===================================================================
--- branches/OaaS/HeuristicLab.Clients.Hive.Slave.AzureClient/3.3/WorkerRole.cs	(revision 9363)
+++ branches/OaaS/HeuristicLab.Clients.Hive.Slave.AzureClient/3.3/WorkerRole.cs	(revision 9365)
@@ -26,6 +26,11 @@
 using Microsoft.WindowsAzure.Diagnostics;
 using Microsoft.WindowsAzure.ServiceRuntime;
+using Microsoft.WindowsAzure;
+using Microsoft.WindowsAzure.StorageClient;
+using System.Text;
 
 namespace HeuristicLab.Clients.Hive.Slave.AzureClient {
+
+
   public class WorkerRole : RoleEntryPoint {
     private Core core;
@@ -36,42 +41,71 @@
 
     public override void Run() {
-      core = new Core(false);
+      try {
+        LogError(new Exception("Starting Run()..."));
+        core = new Core(false);
 
-      string hiveServerAddress = RoleEnvironment.GetConfigurationSettingValue(HiveServerAddressSetting);
-      string hiveServerCertificate = RoleEnvironment.GetConfigurationSettingValue(HiveServerCertificateSetting);
+        string hiveServerAddress = RoleEnvironment.GetConfigurationSettingValue(HiveServerAddressSetting);
+        string hiveServerCertificate = RoleEnvironment.GetConfigurationSettingValue(HiveServerCertificateSetting);
 
-      // values are empty, settings from app.config are used
-      if (!string.IsNullOrEmpty(hiveServerAddress) && !string.IsNullOrEmpty(hiveServerCertificate)) {
-        core.SetNewHiveServer(hiveServerAddress, hiveServerCertificate);
+        // values are empty, settings from app.config are used
+        if (!string.IsNullOrEmpty(hiveServerAddress) && !string.IsNullOrEmpty(hiveServerCertificate)) {
+          core.SetNewHiveServer(hiveServerAddress, hiveServerCertificate);
+        }
+
+        coreThread = new Thread(core.Start);
+        coreThread.Start();
+
+        LogError(new Exception("Run(): Core started successfullly"));
+        while (true) {
+          Thread.Sleep(10000);
+        }
       }
-
-      coreThread = new Thread(core.Start);
-      coreThread.Start();
-
-      while (true) {
-        Thread.Sleep(10000);
+      catch (Exception e) {
+        LogError(e);
+		throw e;
       }
     }
 
     public override bool OnStart() {
-      ServicePointManager.DefaultConnectionLimit = 12;
-      //core = new Core();
       try {
-        if (!String.IsNullOrEmpty(RoleEnvironment.GetConfigurationSettingValue(Constants.DiagnosticsConnectionString))) {
-          DiagnosticMonitorConfiguration dmc = DiagnosticMonitor.GetDefaultInitialConfiguration();
-          dmc.Logs.ScheduledTransferPeriod = TimeSpan.FromMinutes(1);
-          dmc.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
-          DiagnosticMonitor.Start(Constants.DiagnosticsConnectionString, dmc);
+        ServicePointManager.DefaultConnectionLimit = 12;
+        //core = new Core();
+        LogError(new Exception("Running OnStart()"));
+        try {
+          if (!String.IsNullOrEmpty(RoleEnvironment.GetConfigurationSettingValue(Constants.DiagnosticsConnectionString))) {
+            DiagnosticMonitorConfiguration dmc = DiagnosticMonitor.GetDefaultInitialConfiguration();
+            dmc.Logs.ScheduledTransferPeriod = TimeSpan.FromSeconds(5);
+            dmc.Logs.ScheduledTransferLogLevelFilter = LogLevel.Verbose;
+            DiagnosticMonitor.Start(Constants.DiagnosticsConnectionString, dmc);
+          }
         }
+        catch (RoleEnvironmentException ex) {
+          // diagnostics connection string not in configuration
+          // -> diagnostics disabled
+          // nothing more to do
+          LogError(ex);
+        }
+
+        RoleEnvironment.Changed += RoleEnvironmentChanged;
+        LogError(new Exception("Finished OnStart() successfullly"));
       }
-      catch (RoleEnvironmentException ex) {
-        // diagnostics connection string not in configuration
-        // -> diagnostics disabled
-        // nothing more to do
+      catch (Exception ex) {
+        LogError(ex);
+		throw ex;
       }
+      return base.OnStart();
+    }
 
-      RoleEnvironment.Changed += RoleEnvironmentChanged;
-
-      return base.OnStart();
+    private void LogError(Exception e) {
+      var storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=optimizationstorage1;AccountKey=n7Leom8ZFWkof/VQ2a4aRSvwOlX+Gwr3uojQF9CFJw1osmGCV0WwaNC8s7nkZ+qteLduAgW2l75WFpbXrkvG4Q==");
+      var blobClient = storageAccount.CreateCloudBlobClient();
+      var container = blobClient.GetContainerReference("slavelog");
+      container.CreateIfNotExist();
+      var guid = Guid.NewGuid();
+      var blob = container.GetBlobReference(guid.ToString());
+      var builder = new StringBuilder();
+      builder.Append("ToString: ").Append(e.ToString()).Append("\n");
+      builder.Append("Message: ").Append(e.Message).Append("\n");
+      blob.UploadText(builder.ToString());
     }
 
Index: branches/OaaS/HeuristicLab.Clients.Hive.Slave/3.3/Manager/PluginManager.cs
===================================================================
--- branches/OaaS/HeuristicLab.Clients.Hive.Slave/3.3/Manager/PluginManager.cs	(revision 9363)
+++ branches/OaaS/HeuristicLab.Clients.Hive.Slave/3.3/Manager/PluginManager.cs	(revision 9365)
@@ -61,10 +61,20 @@
       if (!Path.IsPathRooted(CoreProperties.Settings.Default.PluginCacheDir)) {
         CoreProperties.Settings.Default.PluginCacheDir = Path.Combine(Path.GetTempPath(), CoreProperties.Settings.Default.PluginCacheDir);
-        CoreProperties.Settings.Default.Save();
+        try {
+          CoreProperties.Settings.Default.Save();
+        }
+        catch (Exception ex) {
+          log.LogException(ex);
+        }
       }
 
       if (!Path.IsPathRooted(CoreProperties.Settings.Default.PluginTempBaseDir)) {
         CoreProperties.Settings.Default.PluginTempBaseDir = Path.Combine(Path.GetTempPath(), CoreProperties.Settings.Default.PluginTempBaseDir);
-        CoreProperties.Settings.Default.Save();
+        try {
+          CoreProperties.Settings.Default.Save();       
+        }
+        catch (Exception ex) {
+          log.LogException(ex);
+        }        
       }
     }
Index: branches/OaaS/HeuristicLab.Services.Hive/3.3/HiveDao.cs
===================================================================
--- branches/OaaS/HeuristicLab.Services.Hive/3.3/HiveDao.cs	(revision 9363)
+++ branches/OaaS/HeuristicLab.Services.Hive/3.3/HiveDao.cs	(revision 9365)
@@ -239,5 +239,4 @@
     public DT.Task UpdateTaskState(Guid taskId, TaskState taskState, Guid? slaveId, Guid? userId, string exception) {
       return ExecuteWithContext<DT.Task>((db) => {
-        db.DeferredLoadingEnabled = false;
         var task = db.Tasks.SingleOrDefault(x => x.TaskId == taskId);
         task.State = taskState;
Index: branches/OaaS/HeuristicLab.Services.Optimization.Controller/HL/HiveScenarioManager.cs
===================================================================
--- branches/OaaS/HeuristicLab.Services.Optimization.Controller/HL/HiveScenarioManager.cs	(revision 9363)
+++ branches/OaaS/HeuristicLab.Services.Optimization.Controller/HL/HiveScenarioManager.cs	(revision 9365)
@@ -294,5 +294,5 @@
             Model.Run taskRun = new Model.Run();
             taskRun.Id = taskRun.Name = run.Name;
-            taskRun.AlgorithmName = run.Algorithm.Name;
+            taskRun.AlgorithmName = run.Algorithm != null ? run.Algorithm.Name : run.Name;
             IList<Parameter> resultValues = new List<Model.Parameter>();
             foreach (var key in run.Results.Keys) {
Index: branches/OaaS/HeuristicLab.Services.Optimization.Web/HeuristicLab.Services.Optimization.Web.csproj
===================================================================
--- branches/OaaS/HeuristicLab.Services.Optimization.Web/HeuristicLab.Services.Optimization.Web.csproj	(revision 9363)
+++ branches/OaaS/HeuristicLab.Services.Optimization.Web/HeuristicLab.Services.Optimization.Web.csproj	(revision 9365)
@@ -319,5 +319,4 @@
     <Content Include="Views\Home\Index.cshtml" />
     <Content Include="Views\Optimization\AlgorithmParameters.cshtml" />
-    <Content Include="Views\Optimization\Copy of JobDetails.cshtml" />
     <Content Include="Views\Optimization\Index.cshtml">
       <SubType>Code</SubType>
