Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
06/20/11 23:56:31 (14 years ago)
Author:
cneumuel
Message:

#1233

  • visualization of statistics on status page (requires MS charting controls)
Location:
branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Web/Hive-3.4
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Web/Hive-3.4/Status.aspx

    r6457 r6458  
    11<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Status.aspx.cs" Inherits="Status" %>
    22
     3<%@ Register Assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
     4  Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %>
    35<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    46<html xmlns="http://www.w3.org/1999/xhtml">
     
    1820    <asp:Label ID="waitingJobsLabel" runat="server" />
    1921    <br />
    20     Slaves:
     22    Slaves (CPU Utilization):
    2123    <asp:Label ID="slavesLabel" runat="server" />
    2224    <br />
     25    Avg. CPU Utilization:
     26    <asp:Label ID="cpuUtilizationLabel" runat="server" />
    2327    <br />
    24     <asp:Label ID="statisticsLabel" runat="server" />
    25     <asp:Table ID="Table1" runat="server" Height="64px" Width="75px">
    26     </asp:Table>
     28    <br />
     29    Days:
     30    <asp:DropDownList ID="daysDropDownList" runat="server" AutoPostBack="True" OnSelectedIndexChanged="daysDropDownList_SelectedIndexChanged">
     31      <asp:ListItem Value="1"></asp:ListItem>
     32      <asp:ListItem Value="2"></asp:ListItem>
     33      <asp:ListItem Value="3"></asp:ListItem>
     34      <asp:ListItem Value="4"></asp:ListItem>
     35      <asp:ListItem Value="5"></asp:ListItem>
     36      <asp:ListItem Value="6"></asp:ListItem>
     37      <asp:ListItem Value="7"></asp:ListItem>
     38      <asp:ListItem Value="8"></asp:ListItem>
     39      <asp:ListItem Value="9"></asp:ListItem>
     40      <asp:ListItem Value="10"></asp:ListItem>
     41      <asp:ListItem Value="11"></asp:ListItem>
     42      <asp:ListItem Value="12"></asp:ListItem>
     43      <asp:ListItem Value="13"></asp:ListItem>
     44      <asp:ListItem Value="14"></asp:ListItem>
     45      <asp:ListItem Value="All"></asp:ListItem>
     46    </asp:DropDownList>
     47    <br />
     48    <br />
     49    Avg. CPU Utilization History of all Slaves<br />
     50    <asp:Chart ID="cpuUtilizationChart" runat="server" Height="270px" Width="1900px">
     51      <Series>
     52        <asp:Series BorderWidth="2" ChartType="Line" Color="0, 176, 80" Name="Series1" XValueType="DateTime"
     53          YValueType="Double">
     54        </asp:Series>
     55      </Series>
     56      <ChartAreas>
     57        <asp:ChartArea BackColor="Black" BackHatchStyle="DottedGrid" BackSecondaryColor="0, 96, 43"
     58          BorderColor="DarkGreen" BorderDashStyle="Dot" Name="ChartArea1">
     59          <AxisY>
     60            <MajorGrid Enabled="False" />
     61          </AxisY>
     62          <AxisX IntervalAutoMode="VariableCount" IntervalOffset="1" IntervalOffsetType="Hours"
     63            IntervalType="Hours" IsLabelAutoFit="False" >
     64            <MajorGrid Enabled="False" />
     65            <LabelStyle Format="d/M/yyyy HH:mm" IsStaggered="True" />
     66          </AxisX>
     67        </asp:ChartArea>
     68      </ChartAreas>
     69    </asp:Chart>
     70    <br />
     71    <br />
     72    Cores/Used Cores History<br />
     73    <asp:Chart ID="coresChart" runat="server" Palette="None" Width="1900px" PaletteCustomColors="137, 165, 78; 185, 205, 150">
     74      <Series>
     75        <asp:Series ChartType="Area" Name="Cores" XValueType="DateTime" YValueType="Double">
     76        </asp:Series>
     77        <asp:Series ChartArea="ChartArea1" ChartType="Area" Name="FreeCores" XValueType="DateTime"
     78          YValueType="Double">
     79        </asp:Series>
     80      </Series>
     81      <ChartAreas>
     82        <asp:ChartArea BackColor="Black" BackHatchStyle="DottedGrid" BackSecondaryColor="0, 96, 43"
     83          BorderColor="DarkGreen" BorderDashStyle="Dot" Name="ChartArea1">
     84          <AxisY>
     85            <MajorGrid Enabled="False" />
     86          </AxisY>
     87          <AxisX IntervalAutoMode="VariableCount" IntervalOffset="1" IntervalOffsetType="Hours"
     88            IntervalType="Hours" IsLabelAutoFit="False" >
     89            <MajorGrid Enabled="False" />
     90            <LabelStyle Format="d/M/yyyy HH:mm" IsStaggered="True" />
     91          </AxisX>
     92        </asp:ChartArea>
     93      </ChartAreas>
     94    </asp:Chart>
     95    <br />
     96    <br />
     97    Memory/Used Memory History (GB)<br />
     98    <asp:Chart ID="memoryChart" runat="server" Palette="None" PaletteCustomColors="170, 70, 67; 209, 147, 146"
     99      Width="1900px">
     100      <Series>
     101        <asp:Series ChartType="Area" Name="Cores" XValueType="DateTime" YValueType="Double">
     102        </asp:Series>
     103        <asp:Series ChartArea="ChartArea1" ChartType="Area" Name="FreeCores" XValueType="DateTime"
     104          YValueType="Double">
     105        </asp:Series>
     106      </Series>
     107      <ChartAreas>
     108        <asp:ChartArea BackColor="Black" BackHatchStyle="DottedGrid" BackSecondaryColor="0, 96, 43"
     109          BorderColor="DarkGreen" BorderDashStyle="Dot" Name="ChartArea1">
     110          <AxisY>
     111            <MajorGrid Enabled="False" />
     112          </AxisY>
     113          <AxisX IntervalAutoMode="VariableCount" IntervalOffset="1" IntervalOffsetType="Hours"
     114            IntervalType="Hours" IsLabelAutoFit="False" >
     115            <MajorGrid Enabled="False" />
     116            <LabelStyle Format="d/M/yyyy HH:mm" IsStaggered="True" />
     117          </AxisX>
     118        </asp:ChartArea>
     119      </ChartAreas>
     120    </asp:Chart>
     121    <br />
     122    Speedup (ComputedMinutes/Minute)<br />
     123    <asp:Chart ID="speedupChartMinutes" runat="server" Palette="None" Width="1900px"
     124      PaletteCustomColors="79, 129, 189">
     125      <Series>
     126        <asp:Series ChartType="Area" Name="Cores" XValueType="DateTime" YValueType="Double">
     127        </asp:Series>
     128      </Series>
     129      <ChartAreas>
     130        <asp:ChartArea BackColor="Black" BackHatchStyle="DottedGrid" BackSecondaryColor="0, 96, 43"
     131          BorderColor="DarkGreen" BorderDashStyle="Dot" Name="ChartArea1">
     132          <AxisY Minimum="-5">
     133            <MajorGrid Enabled="False" />
     134          </AxisY>
     135          <AxisX IntervalAutoMode="VariableCount" IntervalOffset="1" IntervalOffsetType="Hours"
     136            IntervalType="Hours" IsLabelAutoFit="False" >
     137            <MajorGrid Enabled="False" />
     138            <LabelStyle Format="d/M/yyyy HH:mm" IsStaggered="True" />
     139          </AxisX>
     140        </asp:ChartArea>
     141      </ChartAreas>
     142    </asp:Chart>
     143    <br />
     144    <br />
     145    Speedup (ComputedHours/Hour)<br />
     146    <br />
     147    <asp:Chart ID="speedupChartHours" runat="server" Palette="None" Width="1900px" PaletteCustomColors="79, 129, 189">
     148      <Series>
     149        <asp:Series ChartType="Area" Name="Cores" XValueType="DateTime" YValueType="Double">
     150        </asp:Series>
     151      </Series>
     152      <ChartAreas>
     153        <asp:ChartArea BackColor="Black" BackHatchStyle="DottedGrid" BackSecondaryColor="0, 96, 43"
     154          BorderColor="DarkGreen" BorderDashStyle="Dot" Name="ChartArea1">
     155          <AxisY>
     156            <MajorGrid Enabled="False" />
     157          </AxisY>
     158          <AxisX IntervalAutoMode="VariableCount" IntervalOffset="1" IntervalOffsetType="Hours"
     159            IntervalType="Hours" IsLabelAutoFit="False">
     160            <MajorGrid Enabled="False" />
     161            <LabelStyle Format="d/M/yyyy HH:mm" IsStaggered="True" />
     162          </AxisX>
     163        </asp:ChartArea>
     164      </ChartAreas>
     165    </asp:Chart>
    27166    <br />
    28167  </div>
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Web/Hive-3.4/Status.aspx.cs

    r6457 r6458  
    99using HeuristicLab.Services.Hive.Common.DataTransfer;
    1010using System.Text;
     11using System.Web.UI.DataVisualization.Charting;
    1112
    1213public partial class Status : System.Web.UI.Page {
     
    1516    var onlineSlaves = dao.GetSlaves(x => x.SlaveState == SlaveState.Calculating || x.SlaveState == SlaveState.Idle);
    1617
    17     int availableCores = onlineSlaves.Sum(s => s.Cores.Value);
    18     int usedCores = availableCores - onlineSlaves.Sum(s => s.FreeCores.Value);
    19     int jobCount = ServiceLocator.Instance.HiveDao.GetJobs(x => x.State == JobState.Waiting).Count();
     18    int currentlyAvailableCores = onlineSlaves.Sum(s => s.Cores.Value);
     19    int currentlyUsedCores = currentlyAvailableCores - onlineSlaves.Sum(s => s.FreeCores.Value);
     20    int currentlyJobsWaiting = ServiceLocator.Instance.HiveDao.GetJobs(x => x.State == JobState.Waiting).Count();
    2021
    21     this.availableCoresLabel.Text = availableCores.ToString();
    22     this.usedCoresLabel.Text = usedCores.ToString();
    23     this.waitingJobsLabel.Text = jobCount.ToString();
     22    this.availableCoresLabel.Text = currentlyAvailableCores.ToString();
     23    this.usedCoresLabel.Text = currentlyUsedCores.ToString();
     24    this.waitingJobsLabel.Text = currentlyJobsWaiting.ToString();
    2425
    25     slavesLabel.Text = string.Join(", ", onlineSlaves.Select(x => x.Name));
     26    slavesLabel.Text = string.Join(", ", onlineSlaves.Select(x => string.Format("{0} ({1} %)", x.Name, Math.Round(x.CpuUtilization, 2))));
    2627
    27     var stats = dao.GetStatistics(x => x.Timestamp >= DateTime.Now.Subtract(TimeSpan.FromDays(7))).OrderByDescending(x => x.TimeStamp);
    28     var sb = new StringBuilder();
    29     int i = 0;
    30     foreach (var s in stats) {
    31       if (i % 60 == 0) { // just ~1 per hour
    32         var cores = s.SlaveStatistics.Sum(x => x.Cores);
    33         var usdCores = cores - s.SlaveStatistics.Sum(x => x.FreeCores);
     28    cpuUtilizationLabel.Text = onlineSlaves.Count() > 0 ? onlineSlaves.Average(s => s.CpuUtilization).ToString() : "0.0";
     29
     30    HeuristicLab.Services.Hive.Common.DataTransfer.Statistics[] stats;
     31    if (daysDropDownList.SelectedValue == "All")
     32      stats = dao.GetStatistics(x => true).OrderByDescending(x => x.TimeStamp).ToArray();
     33    else
     34      stats = dao.GetStatistics(x => x.Timestamp >= DateTime.Now.Subtract(TimeSpan.FromDays(int.Parse(daysDropDownList.SelectedValue)))).OrderByDescending(x => x.TimeStamp).ToArray();
     35
     36
     37    for (int i = 0; i < stats.Length; i++) {
     38      var s = stats[i];
     39
     40      var averageCpuUtilization = s.SlaveStatistics.Count() > 0 ? s.SlaveStatistics.Average(x => x.CpuUtilization) : 0.0;
     41      cpuUtilizationChart.Series[0].Points.Add(new DataPoint(s.TimeStamp.ToOADate(), averageCpuUtilization));
     42
     43      var cores = s.SlaveStatistics.Sum(x => x.Cores);
     44
     45      var usedCores = cores - s.SlaveStatistics.Sum(x => x.FreeCores);
     46      coresChart.Series[0].Points.AddXY(s.TimeStamp.ToOADate(), cores);
     47      coresChart.Series[1].Points.AddXY(s.TimeStamp.ToOADate(), usedCores);
     48
     49      var memory = s.SlaveStatistics.Sum(x => x.Memory);
     50      var usedMemory = memory - s.SlaveStatistics.Sum(x => x.FreeMemory);
     51      memoryChart.Series[0].Points.AddXY(s.TimeStamp.ToOADate(), memory/1024);
     52      memoryChart.Series[1].Points.AddXY(s.TimeStamp.ToOADate(), usedMemory/1024);
     53
     54      if (i > 0) {
    3455        var execTime = new TimeSpan(s.UserStatistics.Sum(x => x.ExecutionTime.Ticks));
    35         sb.AppendLine(string.Format("{0}: Cores: {1}, UsedCores: {2}, TotalExecutionTime: {3}<br/>", s.TimeStamp.ToString(), cores, usdCores, execTime.ToString()));
     56        var execTimePrev = new TimeSpan(stats[i - 1].UserStatistics.Sum(x => x.ExecutionTime.Ticks));
     57        var execTimeDifference = execTimePrev - execTime;
     58
     59        var timeDifference = stats[i - 1].TimeStamp - s.TimeStamp; // the difference between statistic entries is not alway exactly 1 minute
     60        var speedup = execTimeDifference.TotalMinutes / timeDifference.TotalMinutes;
     61        speedupChartMinutes.Series[0].Points.AddXY(s.TimeStamp.ToOADate(), speedup);
    3662      }
    37       i++;
     63      if (i - 60 >= 0) {
     64        var execTime = new TimeSpan(s.UserStatistics.Sum(x => x.ExecutionTime.Ticks));
     65        var execTimePrev = new TimeSpan(stats[i - 60].UserStatistics.Sum(x => x.ExecutionTime.Ticks));
     66        var execTimeDifference = execTimePrev - execTime;
     67
     68        var timeDifference = stats[i - 60].TimeStamp - s.TimeStamp; // the difference between statistic entries is not alway exactly 1 minute
     69        var speedup = execTimeDifference.TotalMinutes / timeDifference.TotalMinutes;
     70        speedupChartHours.Series[0].Points.AddXY(s.TimeStamp.ToOADate(), speedup);
     71      }
    3872    }
    39     statisticsLabel.Text = sb.ToString();
     73  }
     74
     75  protected void daysDropDownList_SelectedIndexChanged(object sender, EventArgs e) {
     76
    4077  }
    4178}
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Services.Hive.Web/Hive-3.4/Web.config

    r6452 r6458  
    1 <?xml version="1.0"?>
     1<?xml version="1.0"?>
    22<configuration>
    3 
    4   <configSections>
    5     <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
    6       <section name="HeuristicLab.Services.Hive.DataAccess.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    7       <section name="HeuristicLab.Services.Hive.Common.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    8     </sectionGroup>
    9   </configSections>
    10 
    11   <applicationSettings>
    12     <HeuristicLab.Services.Hive.DataAccess.Settings>
    13       <!-- Timeout for long running database command (storing or loading jobData) -->
    14       <setting name="LongRunningDatabaseCommandTimeout" serializeAs="String">
    15         <value>00:05:33</value>
    16       </setting>
    17     </HeuristicLab.Services.Hive.DataAccess.Settings>
    18    
    19     <HeuristicLab.Services.Hive.Common.Settings>
    20       <!-- If a slave does not send a heartbeat for this time, it is set offline which means all of its jobs are rescheduled -->
    21       <setting name="SlaveHeartbeatTimeout" serializeAs="String">
    22         <value>00:01:00</value>
    23       </setting>
    24 
    25       <!-- When a job is in state `Calculating` this is the maximum time it does not have to send heartbeats, otherwise its rescheduled -->
    26       <setting name="CalculatingJobHeartbeatTimeout" serializeAs="String">
    27         <value>00:05:30</value>
    28       </setting>
    29 
    30       <!-- When a job is in state `Transferring` this is the maximum time it does not have to send heartbeats, otherwise its rescheduled -->
    31       <setting name="TransferringJobHeartbeatTimeout" serializeAs="String">
    32         <value>00:05:30</value>
    33       </setting>
    34     </HeuristicLab.Services.Hive.Common.Settings>
    35   </applicationSettings>
    36  
    37   <connectionStrings>
    38     <add name="HeuristicLab.Authentication" connectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication"/>
    39   </connectionStrings>
    40  
    41   <system.web>
    42     <compilation debug="true" targetFramework="4.0" />
    43     <membership>
    44       <providers>
    45         <clear/>
    46         <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"/>
    47       </providers>
    48     </membership>
    49     <roleManager enabled="true">
    50       <providers>
    51         <clear/>
    52         <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="HeuristicLab.Authentication" applicationName="HeuristicLab.Authentication"/>
    53       </providers>
    54     </roleManager>
    55     <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
    56     <httpRuntime maxRequestLength="1048576" />
    57   </system.web>
    58  
    59   <system.serviceModel>
    60     <diagnostics>
    61       <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="3000"/>
    62     </diagnostics>
    63    
    64     <bindings>
    65       <wsHttpBinding>
    66         <binding name="WSHttpBinding_IHiveService"
    67                  receiveTimeout="00:10:00"
    68                  sendTimeout="00:10:00"
    69                  maxBufferPoolSize="2147483647"
    70                  maxReceivedMessageSize="2147483647">
    71           <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" />
    72           <security mode="Message">
    73             <transport clientCredentialType="Certificate"/>
    74             <message clientCredentialType="UserName" />
    75           </security>
    76         </binding>
    77       </wsHttpBinding>
    78     </bindings>
    79    
    80     <behaviors>
    81       <serviceBehaviors>
    82         <behavior name="ServiceBehaviour_IHiveService">
    83           <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
    84           <serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />
    85           <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
    86           <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />
    87           <serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="AspNetSqlRoleProvider" />
    88           <serviceCredentials>
    89             <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName" />
    90             <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="AspNetSqlMembershipProvider" />
    91           </serviceCredentials>
    92           <serviceSecurityAudit auditLogLocation="Application" suppressAuditFailure="false" messageAuthenticationAuditLevel="SuccessOrFailure" />
    93           <serviceThrottling maxConcurrentCalls="100" />
    94           <dataContractSerializer maxItemsInObjectGraph="2147483647" />
    95         </behavior>
    96       </serviceBehaviors>
    97     </behaviors>
    98 
    99     <services>
    100       <service behaviorConfiguration="ServiceBehaviour_IHiveService" name="HeuristicLab.Services.Hive.HiveService">
    101         <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="" name="MexEndpoint" contract="IMetadataExchange" />
    102         <endpoint binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService" name="WSHttpBinding_IHiveService" contract="HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService" />
    103       </service>
    104     </services>
    105    
    106     <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    107   </system.serviceModel>
    108 
    109   <system.webServer>
    110     <directoryBrowse enabled="true"/>   
    111   </system.webServer>
    112  
     3  <configSections>
     4    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     5      <section name="HeuristicLab.Services.Hive.DataAccess.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
     6      <section name="HeuristicLab.Services.Hive.Common.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
     7    </sectionGroup>
     8  </configSections>
     9  <appSettings>
     10  <add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;" />
     11 </appSettings>
     12 <applicationSettings>
     13    <HeuristicLab.Services.Hive.DataAccess.Settings>
     14      <!-- Timeout for long running database command (storing or loading jobData) -->
     15      <setting name="LongRunningDatabaseCommandTimeout" serializeAs="String">
     16        <value>00:05:33</value>
     17      </setting>
     18    </HeuristicLab.Services.Hive.DataAccess.Settings>
     19    <HeuristicLab.Services.Hive.Common.Settings>
     20      <!-- If a slave does not send a heartbeat for this time, it is set offline which means all of its jobs are rescheduled -->
     21      <setting name="SlaveHeartbeatTimeout" serializeAs="String">
     22        <value>00:01:00</value>
     23      </setting>
     24      <!-- When a job is in state `Calculating` this is the maximum time it does not have to send heartbeats, otherwise its rescheduled -->
     25      <setting name="CalculatingJobHeartbeatTimeout" serializeAs="String">
     26        <value>00:05:30</value>
     27      </setting>
     28      <!-- When a job is in state `Transferring` this is the maximum time it does not have to send heartbeats, otherwise its rescheduled -->
     29      <setting name="TransferringJobHeartbeatTimeout" serializeAs="String">
     30        <value>00:05:30</value>
     31      </setting>
     32    </HeuristicLab.Services.Hive.Common.Settings>
     33  </applicationSettings>
     34  <connectionStrings>
     35    <add name="HeuristicLab.Authentication" connectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=HeuristicLab.Authentication"/>
     36  </connectionStrings>
     37  <system.web>
     38    <httpHandlers>
     39   <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
     40    validate="false" />
     41  </httpHandlers>
     42  <compilation debug="true" targetFramework="4.0">
     43      <assemblies>
     44        <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></assemblies></compilation>
     45    <membership>
     46      <providers>
     47        <clear/>
     48        <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"/>
     49      </providers>
     50    </membership>
     51    <roleManager enabled="true">
     52      <providers>
     53        <clear/>
     54        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="HeuristicLab.Authentication" applicationName="HeuristicLab.Authentication"/>
     55      </providers>
     56    </roleManager>
     57    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
     58   <controls>
     59    <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting"
     60     assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
     61   </controls>
     62  </pages>
     63    <httpRuntime maxRequestLength="1048576"/>
     64  </system.web>
     65  <system.serviceModel>
     66    <diagnostics>
     67      <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="3000"/>
     68    </diagnostics>
     69    <bindings>
     70      <wsHttpBinding>
     71        <binding name="WSHttpBinding_IHiveService" receiveTimeout="00:10:00" sendTimeout="00:10:00" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
     72          <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647"/>
     73          <security mode="Message">
     74            <transport clientCredentialType="Certificate"/>
     75            <message clientCredentialType="UserName"/>
     76          </security>
     77        </binding>
     78      </wsHttpBinding>
     79    </bindings>
     80    <behaviors>
     81      <serviceBehaviors>
     82        <behavior name="ServiceBehaviour_IHiveService">
     83          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
     84          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="false"/>
     85          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
     86          <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true"/>
     87          <serviceAuthorization principalPermissionMode="UseAspNetRoles" roleProviderName="AspNetSqlRoleProvider"/>
     88          <serviceCredentials>
     89            <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName"/>
     90            <userNameAuthentication userNamePasswordValidationMode="MembershipProvider" membershipProviderName="AspNetSqlMembershipProvider"/>
     91          </serviceCredentials>
     92          <serviceSecurityAudit auditLogLocation="Application" suppressAuditFailure="false" messageAuthenticationAuditLevel="SuccessOrFailure"/>
     93          <serviceThrottling maxConcurrentCalls="100"/>
     94          <dataContractSerializer maxItemsInObjectGraph="2147483647"/>
     95        </behavior>
     96      </serviceBehaviors>
     97    </behaviors>
     98    <services>
     99      <service behaviorConfiguration="ServiceBehaviour_IHiveService" name="HeuristicLab.Services.Hive.HiveService">
     100        <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="" name="MexEndpoint" contract="IMetadataExchange"/>
     101        <endpoint binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IHiveService" name="WSHttpBinding_IHiveService" contract="HeuristicLab.Services.Hive.Common.ServiceContracts.IHiveService"/>
     102      </service>
     103    </services>
     104    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
     105  </system.serviceModel>
     106  <system.webServer>
     107  <directoryBrowse enabled="true" />
     108  <handlers>
     109   <remove name="ChartImageHandler" />
     110   <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST"
     111    path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
     112  </handlers>
     113 </system.webServer>
    113114</configuration>
Note: See TracChangeset for help on using the changeset viewer.