Freigeben über


Metadatenimport

Die WWSAPI enthält API-Elemente, die zum Verarbeiten von WSDL und Richtlinien von einem Endpunkt verwendet werden können, um Informationen zu extrahieren, die für die Kommunikation mit dem Endpunkt verwendet werden können. Diese APIs werden in der Regel verwendet, wenn das vom Endpunkt unterstützte Kommunikationsprotokoll noch nicht bekannt ist.

Verwenden Sie die folgende Sequenz, um Metadaten zu verarbeiten:

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

Informationen dazu, wie WSDL und WS-Policy Assertionen der API entsprechen, finden Sie im Thema Metadatenzuordnung .

Sicherheit

Die heruntergeladenen Metadaten sind nur so gut wie die Adresse, die zum Herunterladen verwendet wird. Eine Anwendung sollte sicherstellen, dass der Adresse vertraut. Außerdem sollte eine Anwendung sicherstellen, dass sie ein Sicherheitsprotokoll zum Herunterladen der Metadatendokumente verwendet, das keine Manipulation der Metadaten zulässt.

Eine Anwendung sollte die Adressen der Dienste überprüfen, die von den Metadaten verfügbar gemacht werden. Standardmäßig stellt die Runtime sicher, dass der Hostname des Diensts mit dem der ursprünglichen URL übereinstimmt, die zum Herunterladen der Metadaten verwendet wurde, aber die Anwendung möchte möglicherweise zusätzliche Überprüfungen durchführen. Eine Anwendung kann die Hostnamenüberprüfung deaktivieren, indem WS_METADATA_PROPERTY_VERIFY_HOST_NAMES Eigenschaft überschrieben wird. Wenn die standardmäßig durchgeführte Hostnamenüberprüfung deaktiviert ist, muss sich die Anwendung vor den Metadatendokumenten schützen, die die Adresse eines Diensts einer anderen Partei enthalten, der sie nicht auf andere Weise vertraut.

Standardmäßig beträgt die maximale Arbeitsspeichermenge, die von der Metadatenlaufzeit zum Deserialisieren und Verarbeiten der Metadaten verwendet wird, 256.000, und die maximale Anzahl von Dokumenten, die hinzugefügt werden können, beträgt 32. Diese Standardwerte können von WS_METADATA_PROPERTY_HEAP_REQUESTED_SIZE und WS_METADATA_PROPERTY_MAX_DOCUMENTS Eigenschaften überschrieben werden. Diese Begrenzungen sind so konzipiert, dass die Anzahl der Downloads begrenzt und die Menge an Arbeitsspeicher begrenzt wird, die zum Sammeln der Metadaten zugewiesen wird. Das Erhöhen dieser Werte kann zu einer übermäßigen Arbeitsspeicherauslastung, CPU-Auslastung oder Netzwerkbandbreitennutzung führen. Beachten Sie, dass aufgrund der Erweiterung der Wörterbuchzeichenfolgen im Binärformat eine kleine Nachricht zu einer viel größeren deserialisierten Form führen kann, sodass es bei Verwendung des Binärformats nicht ausreichend ist, sich auf kleine Nachrichten zu verlassen, um die Metadatenspeicherbelegung zu begrenzen.

Standardmäßig beträgt die maximale Anzahl von Richtlinienalternativen 32, kann jedoch von WS_POLICY_PROPERTY_MAX_ALTERNATIVES -Eigenschaft überschrieben werden. Wenn eine Anwendung jede Alternative durchläuft und nach einer Übereinstimmung sucht, muss sie möglicherweise alle Alternativen durchsuchen, bevor eine Übereinstimmung gefunden wird. Das Erhöhen der maximalen Anzahl von Alternativen kann zu einer übermäßigen CPU-Auslastung führen.

Die folgenden Enumerationen sind Teil des Metadatenimports:

Die folgenden Funktionen sind Teil des Metadatenimports:

Die folgenden Handles sind Teil des Metadatenimports:

Die folgenden Strukturen sind Teil des Metadatenimports: