Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive 3.3.sln
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive 3.3.sln	(revision 4284)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive 3.3.sln	(revision 4285)
@@ -492,9 +492,4 @@
 	EndGlobalSection
 	GlobalSection(NestedProjects) = preSolution
-		{89F4BC52-C174-481E-9BD2-3814171020E8} = {DC8C63A5-7B57-4B3A-A74A-6F42C7DD1668}
-		{AEB51212-CDBA-4FC6-A2EE-02359AA53ECE} = {DC8C63A5-7B57-4B3A-A74A-6F42C7DD1668}
-		{8B14A35E-DBDF-43EB-B019-23E9FBC5A35E} = {DC8C63A5-7B57-4B3A-A74A-6F42C7DD1668}
-		{5010BD86-23B7-4F8C-888A-76D21AD5266A} = {DC8C63A5-7B57-4B3A-A74A-6F42C7DD1668}
-		{1605256A-1CB3-44AB-AAFF-577093EE5789} = {DC8C63A5-7B57-4B3A-A74A-6F42C7DD1668}
 		{A04AE929-D0E1-466D-A9D3-BF3C4B2C209F} = {E7D8EFDA-B0CB-4B62-8EAE-2CF473F14D74}
 		{42A1D075-6C12-4DD9-B0C2-C6F5210A8119} = {E7D8EFDA-B0CB-4B62-8EAE-2CF473F14D74}
@@ -516,4 +511,9 @@
 		{5CDACE54-5FB2-4344-A21C-963F63CB7C2B} = {BD1DE6F6-A188-4D1F-9681-BA7104818370}
 		{D17A4D6A-4CAA-4470-8A19-F42463C021FD} = {BD1DE6F6-A188-4D1F-9681-BA7104818370}
+		{89F4BC52-C174-481E-9BD2-3814171020E8} = {DC8C63A5-7B57-4B3A-A74A-6F42C7DD1668}
+		{AEB51212-CDBA-4FC6-A2EE-02359AA53ECE} = {DC8C63A5-7B57-4B3A-A74A-6F42C7DD1668}
+		{8B14A35E-DBDF-43EB-B019-23E9FBC5A35E} = {DC8C63A5-7B57-4B3A-A74A-6F42C7DD1668}
+		{5010BD86-23B7-4F8C-888A-76D21AD5266A} = {DC8C63A5-7B57-4B3A-A74A-6F42C7DD1668}
+		{1605256A-1CB3-44AB-AAFF-577093EE5789} = {DC8C63A5-7B57-4B3A-A74A-6F42C7DD1668}
 		{55B89815-F3E7-4D09-9442-273F849141DD} = {4F2D8149-D608-42B3-BB1C-6909BDA2B350}
 	EndGlobalSection
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/IServerConsoleFacade.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/IServerConsoleFacade.cs	(revision 4284)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/IServerConsoleFacade.cs	(revision 4285)
@@ -32,5 +32,5 @@
   /// Facade for the server management console
   /// </summary>
-  [ServiceContract(SessionMode=SessionMode.Required)]
+  [ServiceContract()]
   public interface IServerConsoleFacade : ISlaveManager, 
     IJobManager {
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/WcfSettings.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/WcfSettings.cs	(revision 4284)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/WcfSettings.cs	(revision 4285)
@@ -73,6 +73,15 @@
     /// </summary>
     /// <returns></returns>
-    public static string GetActiveIP() {
-      return System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().GetActiveTcpConnections()[0].LocalEndPoint.Address.ToString();
+    public static IPAddress GetActiveIP() {
+      //return System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().GetActiveTcpConnections()[0].LocalEndPoint.Address.ToString();
+      IPAddress[] addresses;
+      addresses = Dns.GetHostAddresses(Dns.GetHostName());
+      int index = 0;
+      if (System.Environment.OSVersion.Version.Major >= 6) {
+        for (index = addresses.Length - 1; index >= 0; index--)
+          if (addresses[index].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
+            break;
+      }
+      return addresses[index];
     }
 
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/DefaultScheduler.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/DefaultScheduler.cs	(revision 4284)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/DefaultScheduler.cs	(revision 4285)
@@ -31,14 +31,16 @@
         using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = ApplicationConstants.ISOLATION_LEVEL_SCOPE })) {
           SlaveDto slave = DaoLocator.SlaveDao.FindById(slaveId);
-          LinkedList<JobDto> allOfflineJobsForSlave = new LinkedList<JobDto>(DaoLocator.JobDao.FindFittingJobsForSlave(JobState.Offline, slave.NrOfFreeCores, slave.FreeMemory, slave.Id));
-          if (allOfflineJobsForSlave != null && allOfflineJobsForSlave.Count > 0) {
-            jobToCalculate = allOfflineJobsForSlave.First.Value;
-            jobToCalculate.State = JobState.Calculating;
-            jobToCalculate.Slave = slave;
-            jobToCalculate.Slave.State = SlaveState.Calculating;
-            jobToCalculate.DateCalculated = DateTime.Now;
-            DaoLocator.JobDao.AssignSlaveToJob(slave.Id, jobToCalculate.Id);
-            DaoLocator.JobDao.Update(jobToCalculate);
-            DaoLocator.SlaveDao.Update(jobToCalculate.Slave);
+          if (slave != null) {
+            LinkedList<JobDto> allOfflineJobsForSlave = new LinkedList<JobDto>(DaoLocator.JobDao.FindFittingJobsForSlave(JobState.Offline, slave.NrOfFreeCores, slave.FreeMemory, slave.Id));
+            if (allOfflineJobsForSlave != null && allOfflineJobsForSlave.Count > 0) {
+              jobToCalculate = allOfflineJobsForSlave.First.Value;
+              jobToCalculate.State = JobState.Calculating;
+              jobToCalculate.Slave = slave;
+              jobToCalculate.Slave.State = SlaveState.Calculating;
+              jobToCalculate.DateCalculated = DateTime.Now;
+              DaoLocator.JobDao.AssignSlaveToJob(slave.Id, jobToCalculate.Id);
+              DaoLocator.JobDao.Update(jobToCalculate);
+              DaoLocator.SlaveDao.Update(jobToCalculate.Slave);
+            }
           }
           scope.Complete();
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/HeuristicLab.Hive.Server.Core-3.3.csproj
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/HeuristicLab.Hive.Server.Core-3.3.csproj	(revision 4284)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/HeuristicLab.Hive.Server.Core-3.3.csproj	(revision 4285)
@@ -11,4 +11,5 @@
     <RootNamespace>HeuristicLab.Hive.Server.Core</RootNamespace>
     <AssemblyName>HeuristicLab.Hive.Server.Core-3.3</AssemblyName>
+    <ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
     <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
@@ -96,4 +97,5 @@
     </Reference>
     <Reference Include="System.Drawing" />
+    <Reference Include="System.Runtime.Serialization" />
     <Reference Include="System.ServiceModel">
       <RequiredTargetFramework>3.0</RequiredTargetFramework>
@@ -143,4 +145,5 @@
   </ItemGroup>
   <ItemGroup>
+    <None Include="app.config" />
     <None Include="HeuristicLab.snk" />
     <EmbeddedResource Include="Authorization\HivePermissionSet.xsd">
@@ -185,5 +188,14 @@
     </ProjectReference>
   </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{3D9AD99F-2412-4246-B90B-4EAA41C64699}">
+        <WcfProjectProperties>
+          <AutoStart>False</AutoStart>
+        </WcfProjectProperties>
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/SlaveCommunicator.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/SlaveCommunicator.cs	(revision 4284)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/SlaveCommunicator.cs	(revision 4285)
@@ -34,4 +34,5 @@
 using HeuristicLab.Tracing;
 using HeuristicLab.Hive.Contracts.ResponseObjects;
+using System.Security.Permissions;
 
 namespace HeuristicLab.Hive.Server.Core {
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/app.config
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/app.config	(revision 4285)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.Core/3.3/app.config	(revision 4285)
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+  <connectionStrings>
+    <add name="HeuristicLab.Authentication"
+         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication"/>
+  </connectionStrings>
+
+  <system.web>
+    <membership>
+      <providers>
+        <clear/>
+        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="HeuristicLab.Authentication"
+             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
+             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
+             applicationName="HeuristicLab.Authentication" />
+      </providers>
+    </membership>
+
+    <roleManager enabled="true">
+      <providers>
+        <clear/>
+        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="HeuristicLab.Authentication" applicationName="HeuristicLab.Authentication" />
+      </providers>
+    </roleManager>
+  </system.web>
+
+  <system.serviceModel>
+    <bindings>
+      <wsHttpBinding>
+        <binding name="HttpBinding">
+          <security>
+            <message clientCredentialType="UserName" />
+          </security>
+        </binding>
+      </wsHttpBinding>
+    </bindings>
+    <behaviors>
+      <serviceBehaviors>
+        <behavior name="ServiceBehaviour">
+          <serviceMetadata httpGetEnabled="true" />
+          <serviceDebug includeExceptionDetailInFaults="true" />
+          <serviceAuthorization principalPermissionMode="UseAspNetRoles"
+            roleProviderName="AspNetSqlRoleProvider" />
+          <serviceCredentials>
+            <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" />
+            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider"
+              membershipProviderName="AspNetSqlMembershipProvider" />
+          </serviceCredentials>
+        </behavior>
+      </serviceBehaviors>
+    </behaviors>
+    <services>
+      <service behaviorConfiguration="ServiceBehaviour" name="HeuristicLab.Hive.Server.Core.SlaveFacade">
+        <endpoint address="http://localhost:9000/HiveServer/" binding="wsHttpBinding"
+          bindingConfiguration="HttpBinding" name="HiveServerHttpEndpoint"
+          contract="HeuristicLab.Hive.Contracts.Interfaces.ISlaveFacade" />
+        <endpoint address="mex" binding="mexHttpBinding" contract="HeuristicLab.Hive.Contracts.Interfaces.ISlaveFacade" />
+      </service>
+      <service behaviorConfiguration="ServiceBehaviour" name="HeuristicLab.Hive.Server.Core.ServerConsoleFacade">
+        <endpoint address="http://localhost:9000/HiveServerConsole/"
+          binding="wsHttpBinding" bindingConfiguration="HttpBinding" name="ServerConsoleHttpEndpoint"
+          contract="HeuristicLab.Hive.Contracts.Interfaces.IServerConsoleFacade" />
+        <endpoint address="mex" binding="mexHttpBinding" contract="HeuristicLab.Hive.Contracts.Interfaces.IServerConsoleFacade" />
+      </service>
+      <service behaviorConfiguration="ServiceBehaviour" name="HeuristicLab.Hive.Server.Core.ExecutionEngineFacade">
+        <endpoint address="http://localhost:9000/ExecutionEngine/" binding="wsHttpBinding"
+          bindingConfiguration="HttpBinding" name="ExecutionEngineHttpEndpoint"
+          contract="HeuristicLab.Hive.Contracts.Interfaces.IExecutionEngineFacade" />
+        <endpoint address="mex" binding="mexHttpBinding" contract="HeuristicLab.Hive.Contracts.Interfaces.IExecutionEngineFacade" />
+      </service>
+    </services>
+  </system.serviceModel>
+  
+</configuration>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLab.Hive.Server-3.3.csproj
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLab.Hive.Server-3.3.csproj	(revision 4284)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLab.Hive.Server-3.3.csproj	(revision 4285)
@@ -109,4 +109,5 @@
       <RequiredTargetFramework>3.0</RequiredTargetFramework>
     </Reference>
+    <Reference Include="System.ServiceProcess" />
     <Reference Include="System.Transactions" />
     <Reference Include="System.Xml.Linq">
@@ -149,5 +150,5 @@
     </ProjectReference>
   </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
@@ -165,3 +166,7 @@
 call PreBuildEvent.cmd</PreBuildEvent>
   </PropertyGroup>
+  <PropertyGroup>
+    <PostBuildEvent>
+    </PostBuildEvent>
+  </PropertyGroup>
 </Project>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLabHiveServerApplication.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLabHiveServerApplication.cs	(revision 4284)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server/3.3/HeuristicLabHiveServerApplication.cs	(revision 4285)
@@ -35,134 +35,20 @@
   [Application("Hive Server", "Server application for the distributed hive engine.", true)]
   public class HeuristicLabHiveServerApplication : ApplicationBase {
-    public const string STR_SlaveCommunicator = "SlaveCommunicator";
+    public const string STR_SlaveCommunicator = "HiveServer";
     public const string STR_ServerConsoleFacade = "ServerConsoleFacade";
     public const string STR_ExecutionEngineFacade = "ExecutionEngineFacade";
-
-    private Dictionary<string, ServiceHost> runningServices = new Dictionary<string, ServiceHost>();
-    private NetTcpBinding binding = (NetTcpBinding)WcfSettings.GetBinding();
-    private NetTcpBinding streamedBinding = (NetTcpBinding)WcfSettings.GetStreamedBinding();
-
-    private enum Services {
-      SlaveCommunicator,
-      ServerConsoleFacade,
-      ExecutionEngineFacade,
-      All
-    }
-
-    private bool AddMexEndpoint(ServiceHost serviceHost) {
-      if (serviceHost != null) {
-        ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
-        serviceHost.Description.Behaviors.Add(behavior);
-
-        return serviceHost.AddServiceEndpoint(
-          typeof(IMetadataExchange),
-          MetadataExchangeBindings.CreateMexTcpBinding(),
-          "mex") != null;
-      } else
-        return false;
-    }
-
-    private Uri StartService(Services svc, IPAddress ipAddress, int port) {
-      string curServiceHost = "";
-      Uri uriTcp;
-      ISlaveFacade clientCommunicatorInstance = ApplicationManager.Manager.GetInstances<ISlaveFacade>().First();
-      IServerConsoleFacade serverConsoleInstance = ApplicationManager.Manager.GetInstances<IServerConsoleFacade>().First();
-      IExecutionEngineFacade executionEngineInstance = ApplicationManager.Manager.GetInstances<IExecutionEngineFacade>().First();
-      //SpringServiceHost serviceHost = null;
-      ServiceHost serviceHost = null;
-
-      switch (svc) {
-        case Services.SlaveCommunicator:
-          //  if (clientCommunicatorInstances.Count() > 0) {
-          uriTcp = new Uri("net.tcp://" + ipAddress + ":" + port + "/HiveServer/");
-          serviceHost = new ServiceHost(clientCommunicatorInstance.GetType(), uriTcp);
-          //serviceHost = new ServiceHost(typeof(SlaveFacade), uriTcp);
-          //serviceHost = new SpringServiceHost("clientFacade", uriTcp);
-          serviceHost.AddServiceEndpoint(typeof(ISlaveFacade), streamedBinding, STR_SlaveCommunicator);
-
-          ServiceDebugBehavior sdb = serviceHost.Description.Behaviors.Find<ServiceDebugBehavior>();
-          if (sdb == null) {
-            sdb = new ServiceDebugBehavior();
-            serviceHost.Description.Behaviors.Add(sdb);
-          }
-          sdb.IncludeExceptionDetailInFaults = true;
-
-
-
-          curServiceHost = STR_SlaveCommunicator;
-          //  }
-          break;
-        case Services.ServerConsoleFacade:
-          //  if (serverConsoleInstances.Count() > 0) {
-          uriTcp = new Uri("net.tcp://" + ipAddress + ":" + port + "/HiveServerConsole/");
-          serviceHost = new ServiceHost(serverConsoleInstance.GetType(), uriTcp);
-          //serviceHost = new SpringServiceHost("serverConsoleFacade", uriTcp);
-          serviceHost.AddServiceEndpoint(typeof(IServerConsoleFacade), binding, STR_ServerConsoleFacade);
-          curServiceHost = STR_ServerConsoleFacade;
-          //  }
-          break;
-        case Services.ExecutionEngineFacade:
-          //  if (executionEngineInstances.Count() > 0) {
-          uriTcp = new Uri("net.tcp://" + ipAddress + ":" + port + "/ExecutionEngine/");
-          serviceHost = new ServiceHost(executionEngineInstance.GetType(), uriTcp);
-          //serviceHost = new SpringServiceHost("executionEngineFacade", uriTcp);
-          serviceHost.AddServiceEndpoint(typeof(IExecutionEngineFacade), streamedBinding, STR_ExecutionEngineFacade);
-          curServiceHost = STR_ExecutionEngineFacade;
-          //  }
-          break;
-        case Services.All:
-          throw new InvalidOperationException("Not supported!");
-        default:
-          return null;
-      }
-      if (!String.IsNullOrEmpty(curServiceHost)) {
-        AddMexEndpoint(serviceHost);
-        //WcfSettings.SetServiceCertificate(serviceHost);
-        serviceHost.Open();
-        runningServices.Add(curServiceHost, serviceHost);
-        return serviceHost.BaseAddresses[0];
-      } else
-        return null;
-    }
-
-    private void StopService(Services svc) {
-      ServiceHost svcHost = null;
-      switch (svc) {
-        case Services.SlaveCommunicator:
-          runningServices.TryGetValue(STR_SlaveCommunicator, out svcHost);
-          break;
-        case Services.ServerConsoleFacade:
-          runningServices.TryGetValue(STR_ServerConsoleFacade, out svcHost);
-          break;
-        case Services.ExecutionEngineFacade:
-          runningServices.TryGetValue(STR_ExecutionEngineFacade, out svcHost);
-          break;
-        case Services.All:
-          foreach (KeyValuePair<string, ServiceHost> item in runningServices)
-            item.Value.Close();
-          return;
-        default:
-          throw new InvalidOperationException("Not supported!");
-      }
-      svcHost.Close();
-    }
+    Dictionary<string, Uri> baseAddrDict = new Dictionary<string, Uri>();
 
     public override void Run() {
-      IPAddress[] addresses = Dns.GetHostAddresses(Dns.GetHostName());
-      int index = 0;
-      if (System.Environment.OSVersion.Version.Major >= 6) {
-        for (index = addresses.Length - 1; index >= 0; index--)
-          if (addresses[index].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
-            break;
-      }
+      ServiceHost slaveHost = new ServiceHost(ApplicationManager.Manager.GetTypes(typeof(ISlaveFacade)).First(), GetUri(STR_SlaveCommunicator));
+      slaveHost.Open();
 
-      //Start services and record their base address
-      Dictionary<string, Uri> baseAddrDict = new Dictionary<string, Uri>();
-      baseAddrDict.Add(STR_SlaveCommunicator, StartService(Services.SlaveCommunicator, addresses[index], WcfSettings.DEFAULTPORT));
-      baseAddrDict.Add(STR_ServerConsoleFacade, StartService(Services.ServerConsoleFacade, addresses[index], WcfSettings.DEFAULTPORT));
-      baseAddrDict.Add(STR_ExecutionEngineFacade, StartService(Services.ExecutionEngineFacade, addresses[index], WcfSettings.DEFAULTPORT));
+      ServiceHost serverConsoleHost = new ServiceHost(ApplicationManager.Manager.GetTypes(typeof(IServerConsoleFacade)).First(), GetUri(STR_ServerConsoleFacade));
+      serverConsoleHost.Open();
+
+      ServiceHost executionEngineHost = new ServiceHost(ApplicationManager.Manager.GetTypes(typeof(IExecutionEngineFacade)).First(), GetUri(STR_ExecutionEngineFacade));
+      executionEngineHost.Open();
 
       ILifecycleManager lifecycleManager = ServiceLocator.GetLifecycleManager();
-
       lifecycleManager.Init();
 
@@ -170,8 +56,19 @@
       Application.Run();
 
+      slaveHost.Close();
+      serverConsoleHost.Close();
+      executionEngineHost.Close();
+
       lifecycleManager.Shutdown();
-      
-      StopService(Services.All);
     }
+
+    private Uri GetUri(string serviceName) {
+      string ipAddress = WcfSettings.GetActiveIP().ToString();
+      string port = WcfSettings.DEFAULTPORT.ToString();
+      Uri uriHttp = new Uri("http://" + ipAddress + ":" + port + "/" + serviceName + "/");
+      baseAddrDict.Add(serviceName, uriHttp);
+      return uriHttp;
+    }
+
   }
 }
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.ExecutionEngine/3.3/Executor.cs
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.ExecutionEngine/3.3/Executor.cs	(revision 4284)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Slave.ExecutionEngine/3.3/Executor.cs	(revision 4285)
@@ -77,5 +77,7 @@
     public void Abort() {
       CurrentMessage = MessageContainer.MessageType.AbortJob;
-      Job.Stop();
+      if (Job.ExecutionState != Core.ExecutionState.Stopped) {
+        Job.Stop();
+      }
     }
 
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive/3.3/Files.txt
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive/3.3/Files.txt	(revision 4284)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive/3.3/Files.txt	(revision 4285)
@@ -14,5 +14,4 @@
 HeuristicLab.Hive.Slave.ExecutionEngine\3.3:HeuristicLab.Hive.Slave.ExecutionEngine-3.3.dll
 
-HeuristicLab.Hive.Engine\3.3:HeuristicLab.Hive.Engine-3.3.dll
 HeuristicLab.Hive.Experiment\3.3:HeuristicLab.Hive.Experiment-3.3.dll
 HeuristicLab.Hive.Experiment.Views\3.3:HeuristicLab.Hive.Experiment.Views-3.3.dll
@@ -38,8 +37,2 @@
 ;HeuristicLab.Security.Server\3.3:HeuristicLab.Security.Server-3.3.dll
 
-;External Libraries
-;HeuristicLab.ExtLibs\HeuristicLab.SpringNET\1.3.0:HeuristicLab.SpringNET-1.3.0.dll
-;HeuristicLab.ExtLibs\HeuristicLab.SpringNET\1.3.0:Common.Logging.dll
-;HeuristicLab.ExtLibs\HeuristicLab.SpringNET\1.3.0:Spring.Aop.dll
-;HeuristicLab.ExtLibs\HeuristicLab.SpringNET\1.3.0:Spring.Core.dll
-;HeuristicLab.ExtLibs\HeuristicLab.SpringNET\1.3.0:Spring.Services.dll
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive/3.3/HeuristicLab 3.3.exe.config
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive/3.3/HeuristicLab 3.3.exe.config	(revision 4284)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive/3.3/HeuristicLab 3.3.exe.config	(revision 4285)
@@ -10,4 +10,25 @@
   <connectionStrings>
   </connectionStrings>
+  
+  <!-- [chn] TODO: system.web should be located in HeuristicLab.Hive.Server.Core/app.config, but the ConfigMerger does not merge system.web (yet) -->
+  <system.web>
+    <membership>
+      <providers>
+        <clear/>
+        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="HeuristicLab.Authentication"
+             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
+             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
+             applicationName="HeuristicLab.Authentication" />
+      </providers>
+    </membership>
+
+    <roleManager enabled="true">
+      <providers>
+        <clear/>
+        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="HeuristicLab.Authentication" applicationName="HeuristicLab.Authentication" />
+      </providers>
+    </roleManager>
+  </system.web>
+  
   <system.serviceModel>
     <behaviors>
Index: /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive/3.3/MergeConfigs.cmd
===================================================================
--- /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive/3.3/MergeConfigs.cmd	(revision 4284)
+++ /branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive/3.3/MergeConfigs.cmd	(revision 4285)
@@ -1,5 +1,8 @@
+
+
+ConfigMerger "%SolutionDir%HeuristicLab.Hive.Experiment\3.3\app.config" "HeuristicLab.Hive-3.3.dll.config"
+ConfigMerger "%SolutionDir%HeuristicLab.Hive.Server.Core\3.3\app.config" "HeuristicLab.Hive-3.3.dll.config"
 ConfigMerger "%SolutionDir%HeuristicLab.Hive.Server.LINQDataAccess\3.3\app.config" "HeuristicLab.Hive-3.3.dll.config"
 ConfigMerger "%SolutionDir%HeuristicLab.Hive.Slave.Core\3.3\app.config" "HeuristicLab.Hive-3.3.dll.config"
-ConfigMerger "%SolutionDir%HeuristicLab.Hive.Experiment\3.3\app.config" "HeuristicLab.Hive-3.3.dll.config"
 ConfigMerger "%SolutionDir%HeuristicLab.Hive.Tracing\3.3\app.config" "HeuristicLab.Hive-3.3.dll.config"
 
