Freigeben über


Gewusst wie: Konfigurieren von ASP.NET-Diensten in ASP.NET AJAX

Aktualisiert: November 2007

In diesem Thema wird beschrieben, wie Sie die Konfiguration einrichten, bei der ASP.NET-AJAX-fähige Clientanwendungen ASP.NET-Webdienste (ASMX-Dateien) aufrufen können. Die folgenden Aufgaben werden in diesem Thema beschrieben:

  • Konfigurieren von Webdiensten, um Aufrufe aus dem Clientskript zu ermöglichen

  • Konfigurieren der JSON-Serialisierung

  • Konfigurieren des Authentifizierungsdiensts

  • Konfigurieren des Rollendiensts

  • Konfigurieren des Profildiensts

Die Konfigurationseinstellungen werden alle in der system.web.extension-Konfigurationsgruppe vorgenommen. Weitere Informationen finden Sie unter system.web.extensions-Element (ASP.NET-Einstellungsschema).

Konfigurieren von Webdiensten, um Aufrufe aus dem Clientskript zu ermöglichen

Die folgende Prozedur beschreibt, wie Sie die ASP.NET-Webdienste so konfigurieren, dass sie aus Clientskript aufgerufen werden können. Weitere Informationen finden Sie unter Verfügbarmachen von Webdiensten für Clientskript.

Bei Webdienstaufrufen, die nicht von ASP.NET-AJAX-fähigen Clients (Skript) ausgehen, delegiert die ScriptHandlerFactory-Handlerklasse den Aufruf an den Standardhandler, der anstelle des JSON-Formats das SOAP-Format verwendet. Dies erfolgt intern, und Sie müssen keine Aktion ausführen. Sie können das SOAP-Protokoll für die Webdienste auch deaktivieren.

So deaktivieren Sie das SOAP-Protokoll für Webdienste

  • Löschen Sie in der Datei Web.config der Website alle Protokolle für Webdienste. Dies ist im folgenden Beispiel gezeigt:

    <system.web>
      <webServices>
        <protocols>
          <clear/>
        </protocols>
      </webServices>
    </system.web>
    

So konfigurieren Sie Webdienste, um Aufrufe aus dem Clientskript zu ermöglichen

  • Registrieren Sie in der Datei Web.config der Website den ScriptHandlerFactory-HTTP-Handler.

    Dieser Handler verarbeitet Aufrufe, die vom Skript an Webdienste erfolgen.

    Hinweis:

    Diese Konfigurationseinstellungen sind Teil der Web.config-Dateivorlage für alle neuen AJAX-fähigen Websites, die Sie in Microsoft Visual Studio 2005 erstellen. 

    Das folgende Beispiel zeigt das Web.config-Element zum Registrieren des Handlers.

    <system.web>
      <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx"
          type="System.Web.Script.Services.ScriptHandlerFactory"
           validate="false"/>
      </httpHandlers>
    <system.web>
    

Konfigurieren der JSON-Serialisierung

Wenn Clientskript ASP.NET-Webdienste aufruft, werden Daten im JSON-Format ausgetauscht. Sie können JSON-Serialisierungseinstellungen konfigurieren, indem Sie das jsonSerialization-Element verwenden.

So konfigurieren Sie die JSON-Serialisierung

  1. Öffnen Sie die Datei Web.config der Website.

    Hinweis:

    Wenn Sie in Microsoft Visual Studio 2005 einen Webdienst erstellen, enthält die Datei Web.config den system.web.extensions-Abschnitt mit auskommentierten untergeordneten Elementen.

  2. Fügen Sie im webServices-Element das jsonSerialization-Element hinzu.

    Mithilfe dieses Elements können Sie benutzerdefinierte Konverter angeben und Standardeinstellungen überschreiben.

  3. Definieren Sie die folgenden Serialisierungsattribute. Alle Attribute sind optional.

    • recursionLimit. Gibt die maximale Tiefe für die Serialisierung von Typen an. Die standardmäßige Rekursionsgrenze beträgt 100.

    • maxJsonLength. Gibt die maximale Länge der JSON-Zeichenfolge an (maximale Anzahl an UTF-8-Zeichen). Die Standardlänge beträgt 102.400.

    Das folgende Beispiel zeigt, wie Sie das jsonSerialization-Element konfigurieren. Im Beispiel ist maxJsonLength auf 5.000 gesetzt.

    <configuration>
      <system.web.extensions>
        <scripting>
          <webServices>
            <jsonSerialization maxJsonLength="5000"/>
          </webServices>
        </scripting>
      </system.web.extensions>
    </configuration>
    
  4. Wenn Sie einen benutzerdefinierten Konverter verwenden möchten, fügen Sie im jsonSerialization-Element das converters-Element hinzu.

    Das Element erfordert die folgenden Attribute:

    • name   Ein eindeutiger Bezeichner.

    • type   Der vollqualifizierte Name des Konverters.

    Das folgende Beispiel zeigt, wie Sie einen benutzerdefinierten Konverter konfigurieren.

    <configuration>
      <system.web.extensions>
        <scripting>
          <webServices>
            <jsonSerialization maxJsonLength="50"/>
              <converters>
                <add name="MyCustomConverter" 
                  type="MyCompany.ConvertersNameSpace.MyTypeConverter"/>
              </converters>
            </jsonSerialization>
          </webServices>
        </scripting>
      </system.web.extensions>
    </configuration>
    

Konfigurieren von Anwendungsdiensten, um Aufrufe aus dem Clientskript zu ermöglichen

Die folgenden Prozeduren beschreiben, wie Sie die integrierten Anwendungsdienste so konfigurieren, dass Aufrufe aus Skript in AJAX-fähigen Webanwendungen möglich sind, die im Browser ausgeführt werden.

Weitere Informationen zu ASP.NET-Anwendungsdiensten finden Sie in folgenden Themen:

So konfigurieren Sie den Authentifizierungsdienst

  1. Öffnen Sie die Datei Web.config der Website.

  2. Aktivieren Sie im authentication-Element die Formularauthentifizierung.

    Das folgende Beispiel zeigt ein authentication-Element, das für die Verwendung der Formularauthentifizierung konfiguriert ist. Ein Versuch eines nicht authentifizierten Benutzers, auf eine geschützte Ressource zuzugreifen, wird auf die Seite Login.aspx im Stammverzeichnis der Website umgeleitet.

    <system.web>
      <authentication mode="Forms">
        <forms cookieless="UseCookies" 
          loginUrl="~/login.aspx"/>
      </authentication>
    <system.web>
    

    Weitere Informationen finden Sie unter Verwenden der Formularauthentifizierung mit ASP.NET-AJAX.

  3. Aktivieren Sie im system.web.extensions-Element den Authentifizierungsdienst.

    Das folgende Beispiel zeigt, wie Sie den Authentifizierungsdienst aktivieren.

    <system.web.extensions>
      <scripting>
        <webServices>
           <authenticationService enabled="true" />
        </webServices>
      </scripting>
    </system.web.extensions>
    

So konfigurieren Sie den Rollendienst

  1. Öffnen Sie die Datei Web.config der Website.

  2. Aktivieren Sie im system.web.extensions-Element den Rollendienst.

    Das folgende Beispiel zeigt, wie Sie den Rollendienst aktivieren.

    <system.web.extensions>
      <scripting>
        <webServices>
          <rolesService enabled="true" />
        </webServices>
      </scripting>
    </system.web.extensions>
    

So konfigurieren Sie den Profildienst

  1. Öffnen Sie die Datei Web.config der Website.

  2. Definieren Sie die Profileigenschaften, die Sie in der Anwendung offenlegen möchten, falls diese noch nicht definiert sind.

    Sie definieren die Profileigenschaften im Abschnitt profile, indem Sie Syntax wie im folgenden Beispiel verwenden. Verwenden Sie für gruppierte Eigenschaften das group-Element.

    <system.web>
      <profile enabled="true">
        <add name=" Backgroundcolor" type="System.String"
           defaultValue="white" />
        <add name=" Foregroundcolor" type="System.String"
         defaultValue="black" />
        <properties>
          <group name="Address">
           <add name="Street" type="System.String" />
           <add name="City" type="System.String"/>
           <add name="PostalCode" type="System.String" />
          </group>
        </properties>
      </profile>
    </system.web>
    

    Weitere Informationen finden Sie unter Übersicht über ASP.NET-Profileigenschaften.

  3. Aktivieren Sie im system.web.extensions-Element den Profildienst.

    Das folgende Beispiel zeigt, wie Sie den Profildienst aktivieren.

    <system.web.extensions>
      <scripting>
        <webServices>
          < profileService enabled="true" />
        </webServices>
      </scripting>
    </system.web.extensions>
    
  4. Für jede Profileigenschaft, die Sie in einer Clientanwendung verfügbar machen möchten, fügen Sie dem readAccessProperties-Attribut des profileService-Elements den Eigenschaftennamen hinzu.

  5. Fügen Sie für jede Serverprofileigenschaft, die über Clientskript aktualisiert werden kann, dem writeAccessProperties-Attribut den Eigenschaftennamen hinzu.

    Im folgenden Beispiel wird gezeigt, wie einzelne Eigenschaften verfügbar gemacht und die zugehörigen Lese-/Schreibberechtigungen für Clientanwendungen festgelegt werden.

    <profileService enabled="true" 
        readAccessProperties="Backgroundcolor,Foregroundcolor" 
        writeAccessProperties=" Backgroundcolor,Foregroundcolor"/>
    

Siehe auch

Aufgaben

Gewusst wie: Konfigurieren von WCF-Diensten in ASP.NET AJAX

Konzepte

Übersicht über die ASP.NET-Konfiguration

ASP.NET-Konfigurationsdateihierarchie und Vererbung

Bearbeiten von ASP.NET-Konfigurationsdateien

Referenz

system.web.extensions-Element (ASP.NET-Einstellungsschema)

System.Web.Configuration

Weitere Ressourcen

ASP.NET-Konfigurationseinstellungen

ASP.NET-Konfigurations-API