Freigeben über


Konfigurationsoptionen für mit ASP.NET erstellte XML-Webdienste

Die Konfiguration von XML-Webdiensten folgt demselben Paradigma, das für alle ASP.NET-Webanwendungen verwendet wird. Die ASP.NET-Konfiguration ist eine XML-basierte Konfigurationsarchitektur auf der Grundlage von Textdateien, die gleichermaßen leistungsfähig und erweiterbar ist. Eine Konfigurationsdatei ist nichts anderes als eine Gruppe von XML-Elementen, die die Konfigurationsoptionen für ein bestimmtes technisches Feature von Microsoft .NET Framework darstellen. Im Fall von XML-Webdiensten sind die Konfigurationsoptionen im XML-Element webServices einer Konfigurationsdatei eingeschlossen. Ausführliche Informationen zur ASP.NET-Konfigurationsarchitektur erhalten Sie unter ASP.NET-Konfiguration. Eine vollständige Auflistung der für XML-Webdienste verfügbaren Konfigurationsoptionen finden Sie unter dem <webServices>-Element.

Konfigurieren von Messagingprotokollen und der Diensthilfeseite

Die Messagingprotokolle und die Diensthilfeseite für XML-Webdienste können im <protocols>-XML-Element unter dem <webServices>-Element von Konfigurationsdateien konfiguriert werden. Die Konfiguration erfolgt, indem jeder Einstellung <add>-Elemente und <remove>-Elemente hinzugefügt werden, die angeben, ob die Einstellung für den Bereich der Konfigurationsdatei verfügbar ist. Das <add>-Element fügt die Unterstützung für diese Einstellung des Bereichs der Konfigurationsdatei explizit hinzu, während das <remove>-Element die weiter oben in der Konfigurationshierarchie hinzugefügte Unterstützung entfernt. Eine Protokolleinstellung kann z. B. auf der Computerebene mit einem <add>-Element in der Datei Machine.config hinzugefügt und dann für eine Webanwendung mit einem <remove>-Element in der Datei Web.config entfernt werden. Die Syntax für das <add>-Element und das <remove>-Element lautet wie folgt:

<{add|remove} name="protocol name" />

Das Namensattribut des <add>-Elements und des <remove>-Elements weist folgende Optionen auf:

Einstellung Beschreibung
HttpSoap Steuert die Unterstützung des SOAP über HTTP-Protokolls für XML-Webdienste. Die Unterstützung wird bei der Installation standardmäßig hinzugefügt.
HttpGet Steuert die Unterstützung des HTTP-GET-Protokolls für XML-Webdienste. Die Unterstützung wird bei der Installation nicht standardmäßig hinzugefügt.
HttpPost Steuert die Unterstützung des HTTP-POST-Protokolls für XML-Webdienste unabhängig vom Ursprung der Anforderung. Die Unterstützung wird bei der Installation nicht standardmäßig hinzugefügt.
HttpPostLocalhost Steuert die Unterstützung des HTTP-POST-Protokolls für XML-Webdienste, wenn die Anforderung ihren Ursprung auf dem lokalen Computer hat. Wenn HttpPost der aktuellen Konfiguration hinzugefügt wird, hat diese Einstellung keine Auswirkungen. Die Unterstützung wird bei der Installation standardmäßig hinzugefügt.
Documentation Gibt an, ob eine Diensthilfeseite angezeigt wird, wenn der Benutzer den URL für einen XML-Webdienst ohne Parameter in einem Browser aufruft. Die Unterstützung wird bei der Installation standardmäßig hinzugefügt.

**Hinweis   **.NET Framework, Version 1.0, unterstützt folgende Einstellungen: HttpSoap, HttpGet, HttpPost und Documentation. Alle Einstellungen werden standardmäßig auf der Computerebene aktiviert.

Sicherheitsempfehlung

Vor dem Aktivieren des HTTP-GET-Protokolls oder des HTTP-POST-Protokolls für einen XML-Webdienst sollten Sie sich bewusst sein, dass es dabei zu nicht beabsichtigten Aufrufen kommen kann. Ein Benutzer kann z. B. eine E-Mail mit einem Link empfangen, der für den Benutzer bei einem Klick auf den Link den XML-Webdienst aufruft und dabei in der E-Mail enthaltene Parameter verwendet. Überlegen Sie, ob solche nicht beabsichtigten Aufrufe Schaden anrichten können, bevor Sie das HTTP-GET-Protokoll oder das HTTP-POST-Protokoll aktivieren.

So deaktivieren Sie das HTTP-GET-Protokoll und das HTTP-POST-Protokoll für den gesamten Computer

  1. Öffnen Sie die Datei Machine.config in einem Texteditor. (Die Standardinstallation legt Machine.config im Unterverzeichnis \Config des Stammverzeichnisses für die Installation an.)

  2. Kommentieren Sie im Abschnitt webServices ggf. die Zeilen aus, die die Unterstützung für HTTP-GET und HTTP-POST hinzufügen. Danach sollte der Abschnitt webServices wie folgt aussehen:

    <webServices>
        <protocols>
          <add name="HttpSoap"/> 
             <!-- <add name="HttpPost"/> -->          <!-- <add name="HttpGet"/>  -->
          <add name="Documentation"/>
          <add name="HttpPostLocalhost"/>
        </protocols>
    </webServices>
    
  3. Speichern Sie Machine.config.

    Diese Konfigurationsänderung tritt bei der nächsten Anforderung an einen XML-Webdienst in Kraft, dessen Host dieser Computer ist.

So deaktivieren Sie die Unterstützung für ein Protokoll für eine einzelne Webanwendung

  1. Öffnen Sie die Datei Web.config im Stammverzeichnis der Webanwendung mit einem beliebigen Editor. (Wenn die Datei Web.config nicht vorhanden ist, erstellen Sie diese.)

  2. Ändern Sie den webServices-Abschnitt von Web.config, um die Protokolleinstellung explizit zu entfernen. Im folgenden Beispiel werden das HTTP-POST-Protokoll und das HTTP-GET-Protokoll explizit entfernt:

    <webServices>
         <protocols>
           <remove name="HttpPost" />
           <remove name="HttpGet" />
         </protocols>
    </webServices>
    
  3. Speichern Sie Web.config.

    Diese Konfigurationsänderung tritt bei der nächsten Anforderung an einen XML-Webdienst in Kraft, dessen Host die Webanwendung ist.

Diensthilfeseite

Wenn in einem Webbrowser zum URL für den XML-Webdienst ohne Parameter navigiert wird, kann ein Client die Hilfeseite des Dienstes für den XML-Webdienst anzeigen, sofern der Dienst entsprechend konfiguriert wurde. Die Hilfeseite des Dienstes enthält standardmäßig vom Benutzer lesbare Informationen darüber, wie mit dem XML-Webdienst kommuniziert wird und welche XML-Webdienstmethoden bereitgestellt werden. Da die Hilfeseite des Dienstes lediglich ein ASP.NET-Web Form ist, kann sie ersetzt oder z. B. so angepasst werden, dass sie Elemente wie ein Firmenlogo enthält. Der Dateiname für die Diensthilfeseite wird im <wsdlHelpGenerator>-XML-Element einer Konfigurationsdatei angegeben, wobei die Standardeinstellung für DefaultWsdlHelpGenerator.aspx in der Datei Machine.config angegeben ist. Die Diensthilfeseite wird nur für XML-Webdienste angezeigt, die sich im Bereich einer Konfigurationsdatei befinden und deren Documentation-Protokoll im <protocols>-XML-Element angegeben wurde. Das Documentation-Protokoll wird standardmäßig in der Datei Machine.config angegeben.

So deaktivieren Sie die Diensthilfeseite für eine einzelne Webanwendung

  1. Öffnen Sie die Datei Web.config im Stammverzeichnis der Webanwendung mit einem beliebigen Editor. (Wenn die Datei Web.config nicht vorhanden ist, erstellen Sie diese.)

  2. Ändern Sie den webServices-Abschnitt von Web.config, um das Documentation-Protokoll explizit zu entfernen.

    <webServices>
         <protocols>
           <remove name="Documentation" />
         </protocols>
    </webServices>
    
  3. Speichern Sie Web.config.

    Diese Konfigurationsänderung tritt bei der nächsten Anforderung an einen XML-Webdienst in Kraft, dessen Host die Webanwendung ist.

    Hinweis   Beim Entfernen des Documentation-Protokolls wird außerdem das Erstellen von WSDL-Dateien für alle XML-Webdienste in der Webanwendung deaktiviert. Dadurch können Clients nur dann eine Proxyklasse erstellen, wenn eine WSDL-Datei für sie erstellt und bereitgestellt wurde. Um die Erstellung von WSDL-Dateien für XML-Webdienste in einer Webanwendung aktiviert zu lassen, aber keine für den Benutzer lesbaren Informationen über die XML-Webdienste bereitzustellen, können Sie der Datei Web.config für die Webanwendung ein <wsdlHelpGenerator>-Element hinzufügen und das href-Attribut auf eine von Ihnen erstellte leere HTML-Seite festlegen. Das folgende Codebeispiel enthält einen Auszug aus einer Web.config-Datei, in dem die Diensthilfeseite auf eine MyBlank.htm-Datei im Ordner docs unter dem Ordner mit der Web.config-Datei festgelegt wird.

    <webServices>
       <wsdlHelpGenerator href="docs/MyBlank.htm"/>
    </webServices>
    

Siehe auch

Weitergeben von XML-Webdiensten | Aktivieren der Suche für einen XML-Webdienst | Erstellen von XML-Webdiensten mit ASP.NET