Delen via


Metagegevens importeren

De WWSAPI bevat API-elementen die kunnen worden gebruikt voor het verwerken van WSDL en Beleid vanaf een eindpunt met als doel informatie te extraheren die kan worden gebruikt om te communiceren met het eindpunt. Deze API's worden doorgaans gebruikt wanneer het communicatieprotocol dat wordt ondersteund door het eindpunt nog niet bekend is.

Gebruik de volgende volgorde om metagegevens te verwerken:

WsCreateMetadata    // create a metadata object

while there are metadata documents to add
{
    // retrieve the metadata document from it's location
    // (download, read from file, etc)

    // add the document to the metadata object
    WsReadMetadata

    // optionally query the metadata object for any missing documents
    WsGetMissingMetadataDocumentAddress?
}

// get the endpoints from the metadata object
WsGetMetadataEndpoints

for each endpoint
{            
    // examine the endpoint information to see if 
    // the endpoint is relevant for the particular scenario

    if the endpoint is relevant
    {
        // get the policy object from the endpoint

        // get the number of policy alternatives in the policy
        WsGetPolicyAlternativeCount

        for each policy alternative
        {
            // construct a policy constraints structure that specifies
            // what policy is acceptable and what information to extract
            // from the policy

            // see if the policy alternative matches the constraints
            WsMatchPolicyAlternative

            // if there is a match, then use it

            // if there is not a match, then it is also possible to 
            // try with a different constraint structure
        }
    }
}

// If reusing the metadata object for a different set of documents
WsResetMetadata? // reset metadata object, which removes all documents

WsFreeMetadata // free the metadata object

Zie het onderwerp Metagegevenstoewijzing voor informatie over hoe WSDL- en WS-Policy asserties overeenkomen met de API.

Veiligheid

De gedownloade metagegevens zijn slechts zo goed als het adres dat wordt gebruikt om deze te downloaden. Een toepassing moet ervoor zorgen dat het adres wordt vertrouwd. Bovendien moet een toepassing ervoor zorgen dat er een beveiligingsprotocol wordt gebruikt om de metagegevensdocumenten te downloaden die geen manipulatie met de metagegevens toestaan.

Een toepassing moet de adressen controleren van de services die worden weergegeven door de metagegevens. Standaard zorgt de runtime ervoor dat de hostnaam van de service overeenkomt met die van de oorspronkelijke URL die wordt gebruikt om de metagegevens te downloaden, maar de toepassing kan aanvullende controles willen uitvoeren. Een toepassing kan de verificatie van de hostnaam uitschakelen door WS_METADATA_PROPERTY_VERIFY_HOST_NAMES eigenschap te overschrijven. Als de hostnaamcontrole die standaard wordt uitgevoerd, is uitgeschakeld, moet de toepassing zichzelf beschermen tegen de metagegevensdocumenten met het adres van een service van een andere partij die deze op een andere manier niet vertrouwt.

Standaard is de maximale hoeveelheid geheugen die door de metagegevensruntime wordt gebruikt voor het deserialiseren en verwerken van de metagegevens 256k en is het maximum aantal documenten dat kan worden toegevoegd 32. Deze standaardwaarden kunnen worden overschreven door WS_METADATA_PROPERTY_HEAP_REQUESTED_SIZE en WS_METADATA_PROPERTY_MAX_DOCUMENTS eigenschappen. Deze grenzen zijn ontworpen om de hoeveelheid downloads te beperken en de hoeveelheid toegewezen geheugen te beperken om de metagegevens te verzamelen. Het verhogen van deze waarden kan leiden tot overmatig geheugengebruik, CPU-gebruik of netwerkbandbreedteverbruik. Houd er rekening mee dat vanwege uitbreiding van woordenlijsttekenreeksen in binaire indeling een klein bericht kan leiden tot een veel grotere gedeserialiseerde vorm, dus afhankelijk van kleine berichten om de toewijzing van metagegevensgeheugen te beperken, is niet voldoende wanneer u de binaire indeling gebruikt.

Standaard is het maximum aantal beleidsalternatieven 32, hoewel het kan worden overschreven door WS_POLICY_PROPERTY_MAX_ALTERNATIVES eigenschap. Als een toepassing elk alternatief doorloopt op zoek naar een overeenkomst, moet deze mogelijk alle alternatieven doorzoeken voordat een overeenkomst wordt gevonden. Het verhogen van het maximum aantal alternatieven kan leiden tot overmatig CPU-gebruik.

De volgende opsommingen maken deel uit van het importeren van metagegevens:

De volgende functies maken deel uit van het importeren van metagegevens:

De volgende ingangen maken deel uit van het importeren van metagegevens:

De volgende structuren maken deel uit van het importeren van metagegevens: