Gewusst wie: Aktivieren der Suche für XML-Webdienste

Webdienste können auf folgende Arten für potenzielle Clients veröffentlicht werden:

  • Mit einer XML-Discovery-Datei mit der Dateinamenerweiterung DISCO.

  • Mit einer URL, die eine VSDISCO-Erweiterung angibt.

  • Mit einem Webdienst mit der Abfragezeichenfolge ?DISCO.

In diesem Thema wird gezeigt, wie die ersten beiden Discovery-Mechanismen eingerichtet werden. In diesem Thema wird nicht demonstriert, wie Anforderungen für einen Webdienst mit der Abfragezeichenfolge ?DISCO aktiviert werden, weil diese Methode bereits automatisch verfügbar ist. Eine Erläuterung dieser Optionen finden Sie unter Veröffentlichen und Bereitstellen von XML-Webdiensten.

So veröffentlichen Sie ein statisches Discovery-Dokument für einen Webdienst

  1. Erstellen Sie ein XML-Dokument mit einem Editor, und fügen Sie der ersten Zeile das ?xml version="1.0" ?-Element hinzu.

  2. Innerhalb des XML-Dokuments fügen Sie ein discovery-Element hinzu, z. B.

    <disco:discovery xmlns:disco="https://schemas.xmlsoap.org/disco/">
    </disco:discovery>
    
  3. Innerhalb des discovery-Elements fügen Sie Verweise auf Dienstbeschreibungen, XSD-Schemas und andere Discovery-Dokumente hinzu.

    Sie können so viele Verweise hinzufügen, wie Sie öffentlich verfügbar machen möchten. Dienstbeschreibungsverweise werden in einem Discovery-Dokument durch Hinzufügen eines contractRef-Elements mit dem https://schemas.xmlsoap.org/disco/scl/-XML-Namespace angegeben. Ebenso werden Verweise auf andere Discovery-Dokumente und XSD-Schemas durch Hinzufügen eines discoveryRef-XML-Elements bzw. eines schemaRef-XML-Elements angegeben. Für XSD-Schemaverweise muss der XML-Namespace https://schemas.xmlsoap.org/disco/schema angegeben werden. Geben Sie für alle drei Typen der Dokumente, auf die verwiesen wird, den Speicherort des Dokuments mithilfe des ref-Attributs an. Das folgende Codebeispiel verfügt über Verweise auf ein Discovery-Dokument, eine Dienstbeschreibung und ein XSD-Schema.

    <?xml version="1.0"?>
    <discovery xmlns="https://schemas.xmlsoap.org/disco/">
    <discoveryRef ref="/Folder/Default.disco"/>
    <contractRef ref="http://MyWebServer/UserName.asmx?WSDL"
                 docRef="Service.htm"
                 xmlns="https://schemas.xmlsoap.org/disco/scl/"/>
    <schemaRef ref="Schema.xsd"
               xmlns="https://schemas.xmlsoap.org/disco/schema/"/>
    </discovery>
    

    Verweise können relativ zu dem Verzeichnis sein, in dem sich das Discovery-Dokument befindet (siehe das discoveryRef-Element), oder zu einem URI (siehe das contractRef-Element).

  4. Stellen Sie einem Webserver das Discovery-Dokument bereit, indem Sie es in ein virtuelles Verzeichnis auf dem Webserver kopieren.

  5. Optional können Sie der Standardseite einer IIS-Anwendung einen Link hinzufügen, wenn Sie potenziellen Consumern erlauben möchten, durch Angabe der IIS-Anwendung zu einer URL zu navigieren, ohne ein Dokument angeben zu müssen. Dies hat den Vorteil, dass potenzielle Consumer keine Namen von Discovery-Dokumenten kennen müssen. Benutzer können dann während des Discovery-Prozesses URLs ähnlich der folgenden URL angeben:

    http://MyWebServer/MyWebApplication
    

    Wenn die Standardseite für die Webanwendung eine HTML-Seite ist, fügen Sie dem Discovery-Dokument im head-Element der Standardwebseite für den Webserver einen Link hinzu. Wenn Sie das Discovery-Dokument zum Beispiel MyWebService.disco nennen und es in das gleiche Verzeichnis wie die Standardseite stellen, müssen Sie das folgende Element in die Standardwebseite einfügen:

    <HEAD>
    <link type='text/xml' rel='alternate' href='MyWebService.disco'/>
    </HEAD>
    

    Wenn die Standardseite für die Webanwendung ein XML-Dokument ist, fügen Sie dem Discovery-Dokument im head-Element der Standardwebseite für den Webserver einen Link hinzu. Wenn Sie das Discovery-Dokument zum Beispiel MyWebService.disco nennen und es in das gleiche Verzeichnis wie die Standardseite stellen, müssen Sie Folgendes am Anfang der Standardseite einfügen:

    <?xml-stylesheet type="text/xml" alternate="yes" href="MyWebService.disco" ?>
    

So aktivieren Sie die dynamische Suche für einen Webdienst

  • Um die dynamische Suche für einen Webserver zu aktivieren, fügen Sie der Datei machine.config das folgende <add>-Element hinzu. Ignorieren Sie die Zeilenumbrüche im folgenden Beispiel, weil das type-Attribut auf einer Zeile stehen muss.

    <configuration>
      <system.web>
         <httpHandlers>
           <add verb="*" path="*.vsdisco"
               type="System.Web.Services.Discovery.DiscoveryRequestHandler,
                     System.Web.Services, Version=1.0.3300.0,
                     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
               validate="false"/>
         </httpHandlers>
       </system.web>
    </configuration>
    
    NoteHinweis:

    Wenn die dynamische Suche aktiviert ist, kann nach allen Webdiensten und Discovery-Dokumenten gesucht werden, die unter der angeforderten URL auf dem Webserver vorhanden sind. Sie müssen beim Aktivieren der dynamischen Suche vorsichtig sein, da sensible Daten verfügbar gemacht werden könnten, wenn sich der Webserver nicht in einem Netzwerk mit einer Firewall und anderen Sicherheitsfeatures befindet.

Siehe auch

Konzepte

Veröffentlichen und Bereitstellen von XML-Webdiensten
Konfigurationsoptionen für mit ASP.NET erstellte XML-Webdienste

Weitere Ressourcen

XML-Webdienste, die ASP.NET verwenden

Footer image

Copyright © 2007 by Microsoft Corporation. Alle Rechte vorbehalten.