Identieke dubbele Resources in een configuratie toestaanAllowing for Identical Duplicate Resources in a Configuration

DSC niet toestaan of conflicterende resourcedefinities binnen een configuratie verwerkt.DSC does not allow or handle conflicting resource definitions within a configuration. In plaats van het conflict op te lossen, gewoon is mislukt.Instead of trying to resolve the conflict, it simply fails. Als het hergebruik van de configuratie wordt meer door samengestelde bronnen worden gebruikt, wordt vaker enzovoort conflicten optreden.As configuration reuse becomes more utilized through composite resources, etc. conflicts will occur more often. Wanneer u conflicterende resourcedefinities identiek zijn, moet DSC smart en dit toestaan.When conflicting resource definitions are identical, DSC should be smart and allow this. Met deze release ondersteuning wordt voor meerdere resource-exemplaren die identiek zijn gedefinieerd:With this release, we support having multiple resource instances that have identical definitions:

Configuration IIS_FrontEnd
{
    WindowsFeature FE_IIS         #Identical resource
    {
        Ensure = 'Present'
        Name = 'Web-Server'
    }

    WindowsFeature FTP
    {
        Ensure = 'Present'
        Name = 'Web-FTP-Server'
    }
}

Configuration IIS_Worker
{
    WindowsFeature Worker_IIS      #Identical resource
    {
        Ensure = 'Present'
        Name = 'Web-Server'
    }

    WindowsFeature ASP
    {
        Ensure = 'Present'
        Name = 'Web-ASP-Net45'
    }
}

Configuration WebApplication
{
    IIS_Frontend Web {}

    IIS_Worker ASP {}
}

In eerdere versies is het resultaat een compilatie is mislukt vanwege een conflict tussen de WindowsFeature FE_IIS en WindowsFeature Worker_IIS exemplaren probeert om te controleren of de rol 'Webserver' is geïnstalleerd.In previous releases, the result would be a failed compilation due to a conflict between the WindowsFeature FE_IIS and WindowsFeature Worker_IIS instances trying to ensure the 'Web-Server' role is installed. U ziet dat alle van de eigenschappen die worden geconfigureerd in deze twee configuraties identiek zijn.Notice that all of the properties that are being configured are identical in these two configurations. Aangezien alle van de eigenschappen in deze twee bronnen identiek zijn, resulteert dit in een geslaagde compilatie nu.Since all of the properties in these two resources are identical, this will result in a successful compilation now.

Als een van de eigenschappen van verschillen tussen de twee bronnen, worden deze niet gezien identiek en compilatie mislukt:If any of the properties are different between the two resources, they will not be considered identical and compilation will fail:

Configuration IIS_FrontEnd
{
    WindowsFeature FE_IIS
    {
        Ensure = 'Present'     # Ensure is Present here
        Name = 'Web-Server'
    }

    WindowsFeature FTP
    {
        Ensure = 'Present'
        Name = 'Web-FTP-Server'
    }
}

Configuration IIS_Worker
{
    WindowsFeature Worker_IIS
    {
        Ensure = 'Absent'      # Ensure property is Absent instead of Present
        Name = 'Web-Server'
    }

    WindowsFeature ASP
    {
        Ensure = 'Present'
        Name = 'Web-ASP-Net45'
    }
}

Configuration WebApplication
{
    IIS_Frontend Web {}

    IIS_Worker ASP {}
}

Deze configuratie vergelijkbaar mislukken omdat de WindowsFeature FE_IIS en WindowsFeature Worker_IIS resources niet langer identiek zijn en daarom in strijd.This very similar configuration will fail because the WindowsFeature FE_IIS and the WindowsFeature Worker_IIS resources are no longer identical and therefore conflict.