Exemplo n.º 1
0
    /// <summary>
    /// Initializes the web farm environment
    /// </summary>
    public static void InitWebFarm()
    {
        // Delete memory synchronization tasks
        WebSyncHelper.DeleteMemorySynchronizationTasks();

        string serverDisplayName = string.Empty;
        string serverUrl         = string.Empty;
        bool   createServer      = false;

        // Create web farm server if running on Azure
        if (AzureHelper.IsRunningOnAzure)
        {
            // Set web farm server name
            WebSyncHelperClass.ServerName = ValidationHelper.GetCodeName(AzureHelper.CurrentInstanceID);
            serverDisplayName             = AzureHelper.CurrentInstanceID;
            serverUrl = AzureHelper.CurrentInternalEndpoint;

            createServer = true;
        }
        // Get dynamic name for server name
        else if (WebSyncHelperClass.GenerateWebFarmServers)
        {
            WebSyncHelperClass.WebFarmEnabled = true;
            serverUrl    = HTTPHelper.UserHostAddress + SettingsKeyProvider.ApplicationPath.TrimEnd('/') + WebSyncHelperClass.WebFarmUpdaterPage;
            createServer = true;

            if (string.IsNullOrEmpty(WebSyncHelperClass.ServerName))
            {
                serverDisplayName             = WebFarmServerInfoProvider.GetAutomaticServerName();
                WebSyncHelperClass.ServerName = ValidationHelper.GetCodeName(serverDisplayName);
            }
            else
            {
                serverDisplayName = WebSyncHelperClass.ServerName;
            }
        }

        // Create new web farm server if is needed
        if (createServer)
        {
            string serverName = WebSyncHelperClass.ServerName;

            // Create web farm server
            WebFarmServerInfo wfsi = WebFarmServerInfoProvider.GetWebFarmServerInfo(serverName);
            if (wfsi == null)
            {
                wfsi = new WebFarmServerInfo();
            }

            wfsi.ServerName        = serverName;
            wfsi.ServerEnabled     = true;
            wfsi.ServerDisplayName = serverDisplayName;
            wfsi.ServerURL         = serverUrl;

            WebFarmServerInfoProvider.SetWebFarmServerInfo(wfsi);
        }
    }