Freigeben über


Gewusst wie: Erstellen und Registrieren oder Aufheben der Registrierung einer Anforderungsklassifizierung

Letzte Änderung: Donnerstag, 3. März 2011

Gilt für: SharePoint Foundation 2010

In diesem Thema wird das Registrieren und Aufheben der Registrierung einer HTTP-Anforderungsklassifizierung beim Leistungsüberwachungs- und HTTP-Anforderungssteuerungssystem von Microsoft SharePoint Foundation erläutert.

Wichtiger HinweisWichtig

Im ausgeführten Beispiel in diesem Thema wird eine Konsolenanwendung verwendet. Ungeachtet des Projekttyps ist es wichtig, dass Sie die richtige .NET Framework-Zielversion und die richtige Ziel-CPU festlegen. Das Ziel des Projekts muss Microsoft .NET Framework 3.5 sein (nicht Microsoft .NET Framework 4). Die Ziel-CPU muss Any CPU oder x64 entsprechen. Weitere Informationen zur Auswahl finden Sie unter Gewusst wie: Festlegen des richtigen Zielframeworks und der CPU. Die Ziel-CPU ist normalerweise standardmäßig auf x86 festgelegt. Zum Ändern dieser Einstellung klicken Sie mit der rechten Maustaste auf den Projektnamen im Projektmappen-Explorer und wählen Eigenschaften aus. Sie können die CPU auf der Registerkarte Erstellen mithilfe der Dropdownliste Zielplattform ändern.

Persistenz von HTTP-Anforderungsklassifizierungen

HTTP-Anforderungsklassifizierungen im HTTP-Anforderungssteuerungssystem bleiben in der Konfigurationsdatenbank der SharePoint Foundation-Farm als Objekte einer von der SPRequestThrottleClassifier-Klasse abgeleiteten Klasse erhalten. Diese Objekte sind Elemente in einer schreibgeschützten Auflistung, die als ThrottleClassifiers-Eigenschaft des SPHttpThrottleSettings-Objekts gespeichert wird, das selbst in der HttpThrottleSettings-Eigenschaft der Webanwendung erhalten bleibt.

So erstellen Sie die Visual Studio-Lösung

  1. Erstellen Sie in Microsoft Visual Studio ein Konsolenanwendungsprojekt und legen Sie die .NET Framework-Zielversion und die CPU-Zielplattform fest.

  2. Fügen Sie Microsoft.SharePoint.dll einen Verweis auf das Projekt hinzu. Diese Datei befindet sich in %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\ISAPI.

  3. Öffnen Sie die Datei program.cs, und legen Sie einen entsprechenden Namespace und einen Klassennamen fest. Fügen Sie dann using-Anweisungen für die Namespaces Microsoft.SharePoint, Microsoft.SharePoint.Administration und Microsoft.SharePoint.Utilities hinzu. Der Code sollte jetzt ungefähr so aussehen.

    using System;
    using Microsoft.SharePoint; 
    using Microsoft.SharePoint.Administration;
    using Microsoft.SharePoint.Utilities;
    
    namespace Contoso.SharePoint.Utilities
    {
        class RequestClassifierRegistrar
        {
            static void Main(string[] args)
            {
    
            }
    // end Main
        }
    }
    

So erstellen und registrieren Sie eine Anforderungsklassifizierung

  1. Rufen Sie in der Main-Methode einen Verweis auf die Webanwendung ab, und rufen Sie dann einen Verweis auf die Drosselungseinstellungen ab, indem Sie die GetHttpThrottleSettings(SPPersistedObject)-Methode aufrufen. Dies wird im folgenden Beispiel gezeigt.

    Uri webApplicationUri = new Uri("Http://localhost/");
    SPWebApplication webApplication = SPWebApplication.Lookup(webApplicationUri);
    SPHttpThrottleSettings throttleSettings = SPHttpThrottleSettings.GetHttpThrottleSettings(webApplication);
    
  2. Rufen Sie, weiterhin in der Main-Methode, einen Konstruktor für eine der Klassen auf, die von der SPRequestThrottleClassifier-Klasse abgeleitet werden. In dem Beispiel wird die SPHttpFileExtensionThrottleClassifier-Klasse verwendet. Objekte dieser Klasse klassifizieren Anforderungen nach der Dateierweiterung der angeforderten Ressource. Der Konstruktor für die Klasse akzeptiert einen String-Parameter, der die Dateinamenerweiterung (einschließlich des führenden Punkts ".") angibt, und einen SPRequestThrottleLevel-Parameter, der die Bedingungen angibt, unter denen die Anforderungen für Ressourcen mit der betreffenden Dateinamenerweiterung gedrosselt werden. In dem Beispiel wird angegeben, dass Anforderungen für ".docx"-Dateien blockiert werden sollen, wenn sich der Arbeitsprozess, der die Anforderung behandelt, im Drosselungsmodus FirstStage befindet.

    SPHttpFileExtensionThrottleClassifier docxClassifier = new SPHttpFileExtensionThrottleClassifier(".docx",SPRequestThrottleLevel.FirstStage);
    
  3. Rufen Sie, noch immer in der Main-Methode, die AddThrottleClassifier(SPRequestThrottleClassifier)-Methode auf, und übergeben Sie die neue Klassifizierung als Parameter.

    throttleSettings.AddThrottleClassifier(docxClassifier);
    
    TippTipp

    AddThrottleClassifier(SPRequestThrottleClassifier) löst eine ArgumentException aus, wenn bereits eine Klassifizierung für dieselbe Erweiterung und Drosselungsstufe vorhanden ist. Unter Umständen ist es sinnvoll, im Code vor dem Aufruf von AddThrottleClassifier(SPRequestThrottleClassifier) eine Überprüfung auf Vorhandensein einer identischen Klassifizierung auszuführen.

    HinweisHinweis

    Sind für eine Dateinamenerweiterung mehrere Klassifizierungen vorhanden, was nur mit verschiedenen Drosselungsstufen vorkommen kann, wird die Klassifizierung mit der striktesten Drosselungsstufe wirksam. Gibt beispielsweise eine Klassifizierung für SVC-Ressourcen die Drosselungsstufe FirstStage an und eine andere Klassifizierung für SVC-Ressourcen gibt SecondStage an, werden entsprechende Anforderungen in der ersten Phase gedrosselt. Somit macht es keinen Sinn, mehrere Klassifizierungen für eine Erweiterung zu definieren.

    Drei andere Klassen im Objektmodell werden von der SPRequestThrottleClassifier-Klasse abgeleitet. Einzelheiten finden Sie unter Anforderungsdrosselung. Da diese Klassen andere Merkmale von HTTP-Anforderungen verwenden als die Dateinamenerweiterung der Ressource, können auf eine Anforderung mehrere Klassifizierungen zutreffen. In diesem Fall entscheidet die strikteste Klassifizierung über die Drosselung der Anforderung. Stimmt die Anforderung beispielsweise mit einer Klassifizierung mit der Drosselungsstufe FirstStage, aber auch mit einer Klassifizierung mit der Drosselungsstufe SecondStage überein, wird die Anforderung blockiert, falls sich der Arbeitsprozess in der ersten Phase des Drosselungsmodus befindet.

So heben Sie die Registrierung einer Anforderungsklassifizierung auf

  • Das Aufheben der Registrierung einer Anforderungsklassifizierung gleicht dem Registrieren, im Code wird jedoch die RemoveThrottleClassifierAt(Int32)-Methode aufgerufen und der nullbasierte Index der Klassifizierung in der ThrottleClassifiers-Auflistung der HttpThrottleSettings-Eigenschaft der Webanwendung übergeben. Im folgenden Beispielcode wird die letzte Klassifizierung entfernt.

    Uri webApplicationUri = new Uri("Http://localhost/");
    SPWebApplication webApplication = SPWebApplication.Lookup(webApplicationUri);
    SPHttpThrottleSettings throttleSettings = SPHttpThrottleSettings.GetHttpThrottleSettings(webApplication);
    
    throttleSettings.RemoveThrottleClassifierAt(throttleSettings.ThrottleClassifiers.Count - 1);   
    

Siehe auch

Konzepte

Anforderungsdrosselung