Metadatenimport

Die WWSAPI enthält API-Elemente, die zum Verarbeiten von WSDL und Policy 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 assertions 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 verwendet, um die Metadatendokumente herunterzuladen, die keine Manipulation der Metadaten zulassen.

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 zum Herunterladen der Metadaten entspricht, aber die Anwendung möchte möglicherweise zusätzliche Überprüfungen durchführen. Eine Anwendung kann die Überprüfung des Hostnamens deaktivieren, indem sie die Eigenschaft WS _ METADATA PROPERTY VERIFY HOST _ _ _ _ NAMES überschreiben. Wenn die standardmäßig durchgeführte Überprüfung des Hostnamens deaktiviert ist, muss sich die Anwendung vor den Metadatendokumenten schützen, die die Adresse eines Diensts von einer anderen Partei enthalten, der sie auf andere Weise nicht 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 durch die Eigenschaften WS _ METADATA PROPERTY _ _ HEAP REQUESTED _ _ SIZE und WS METADATA PROPERTY MAX _ _ DOCUMENTS _ _ überschrieben werden. Diese Begrenzungen sind so konzipiert, dass die Menge der Downloads und die Menge des zugeordneten Arbeitsspeichers zum Sammeln der Metadaten begrenzen werden. Das Erhöhen dieser Werte kann zu übermäßiger Speicherauslastung, CPU-Auslastung oder Netzwerkbandbreitennutzung führen. Beachten Sie, dass eine kleine Nachricht aufgrund der Erweiterung von Wörterbuchzeichenfolgen im Binärformat zu einer viel größeren deserialisierten Form führen kann, sodass die Verwendung kleiner Nachrichten zum Einschränken der Speicherzuweisung von Metadaten bei Verwendung des Binärformats nicht ausreichend ist.

Standardmäßig beträgt die maximale Anzahl von Richtlinienalternativen 32. Sie kann jedoch durch die Eigenschaft WS _ POLICY PROPERTY _ MAX _ _ ALTERNATIVES überschrieben werden. Wenn eine Anwendung jede Alternative durchsucht und nach einer Übereinstimmung sucht, muss sie möglicherweise alle Alternativen durchsuchen, bevor eine Übereinstimmung gefunden wird. Eine Erhöhung 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: