Übersicht über Sandkastenlösungen (SharePoint Foundation 2010)

 

Gilt für: SharePoint Foundation 2010

Letztes Änderungsdatum des Themas: 2016-11-30

Sie können eine Microsoft SharePoint Foundation 2010-Lösung direkt für Ihre SharePoint Foundation-Farm bereitstellen, oder Sie können die Lösung in einem Sandkasten bereitstellen. Ein Sandkasten ist eine eingeschränkte Ausführungsumgebung, die es Programmen ermöglicht, nur auf bestimmte Ressourcen zuzugreifen, und mit der verhindert wird, dass im Sandkasten auftretende Probleme die übrige Serverumgebung beeinträchtigen.

Lösungen, die Sie in einem Sandkasten bereitstellen, werden als Sandkastenlösungen bezeichnet. Bei diesen Lösungen können bestimmte Computer und Netzwerkressourcen nicht verwendet werden. Außerdem bieten sie keinen Zugriff auf Inhalte außerhalb der Websitesammlung, in der Sie bereitgestellt sind. Weitere Informationen zu den Einschränkungen von Sandkastenlösungen finden Sie unter Welche Inhalte kann eine Sandkastenlösung nicht enthalten?.

Da sich Sandkastenlösungen nicht auf die gesamte Serverfarm auswirken, müssen sie nicht von einem Farmadministrator bereitgestellt werden. Sandkastenlösungen können vom Administrator einer Websitesammlung oder, unter bestimmten Umständen, von einem Benutzer bereitgestellt werden, der über den Vollzugriff auf das Stammverzeichnis der Websitesammlung verfügt. Nur ein Farmadministrator kann eine Sandkastenlösung heraufstufen, sodass diese direkt in der Farm und außerhalb des Sandkastens ausgeführt wird.

Vor allem in zwei Szenarien ist die Verwendung von Sandkastenlösungen angemessen:

  • Wenn eine Organisation Code für Mitarbeiter auf einer SharePoint Foundation-Produktionswebsite ausführen möchte und dieser Code nicht streng überprüft und getestet wurde.

  • Wenn ein Hoster zulassen möchte, dass die Besitzer der gehosteten SharePoint Foundation-Websites benutzerdefinierten Code hochladen und ausführen können.

Dieser Artikel enthält eine Einführung in die Konzepte im Zusammenhang mit Sandkastenlösungen. Außerdem werden die Unterschiede zwischen Sandkastenlösungen und in der Farm bereitgestellten Lösungen erläutert, und es wird zusammenfassend beschrieben, wie Sandkastenlösungen bereitgestellt und ausgeführt werden. Dieser Artikel enthält keine detaillierten Verfahren für das Konfigurieren oder Bereitstellen von Sandkastenlösungen.

Inhalt dieses Artikels:

Bereitstellen und Ausführen einer Sandkastenlösung

Jede Seite einer SharePoint Foundation-Anwendung kann Komponenten enthalten, die in einem Sandkasten ausgeführt werden, sowie Komponenten, die direkt in der Farm ausgeführt werden. Die in der Farm bereitgestellten Komponenten werden im IIS-Arbeitsprozess (Internetinformationsdienste) ausgeführt. Die im Sandkasten bereitgestellten Komponenten werden in einem Sandkastenprozess ausgeführt.

Die folgende Liste enthält einige der Komponenten, die Sie in einem Sandkasten bereitstellen können:

  • Webparts

  • Ereignisempfänger

  • Featureempfänger

  • Benutzerdefinierte Microsoft SharePoint Designer-Workflowaktivitäten

  • Microsoft InfoPath-Geschäftslogik

In den folgenden Schritten wird beschrieben, wie eine Sandkastenlösung bereitgestellt wird:

  1. Ein Farmadministrator führt die folgenden Aufgaben aus. Diese müssen nur einmal ausgeführt werden.

    • Ein Farmadministrator aktiviert Sandkästen und startet den Sandkastendienst auf jedem Server, der in einer Sandkastenlösungen ausgeführt wird.

    • Ein Farmadministrator bestimmt, welches Lastenausgleichsschema verwendet wird. Das Lastenausgleichsschema gilt für sämtliche Sandkastenlösungen in allen Websitesammlungen der Farm.

    • Ein Farmadministrator legt Ressourcenkontingente fest, die alle Sandkastenlösungen einer Websitesammlung zusammen nicht überschreiten dürfen.

  2. Ein Websitesammlungsadministrator oder ein Benutzer mit Vollzugriff auf den Stamm der Websitesammlung lädt eine Lösung in den Lösungskatalog der Websitesammlung hoch.

  3. Ein Websitesammlungsadministrator aktiviert die Lösung. Wenn die Lösung keine Assembly enthält, kann sie auch von einem Benutzer mit Vollzugriff auf den Stamm der Websitesammlung aktiviert werden. Für die Lösung werden Überprüfungstools ausgeführt. Wenn die Überprüfung der Lösung fehlschlägt, wird sie nicht aktiviert.

Bei der Verarbeitung einer Anforderung zur Ausführung einer Sandkastenlösung werden folgende Aktivitäten ausgeführt:

  1. Basierend auf dem Lastenausgleichsschema bestimmt SharePoint Foundation, auf welchem Server die Lösung ausgeführt werden soll. Bei einem lokalen Lastenausgleich wird die Lösung auf dem Server ausgeführt, der die Anforderung verarbeitet. Bei einem Remotelastenausgleich wird der Server, auf dem die Lösung ausgeführt wird, auf Grundlage der Lösungsaffinität ausgewählt. In beiden Fällen muss auf dem Server der Sandkastendienst ausgeführt werden.

  2. SharePoint Foundation wählt einen Sandkastenarbeitsprozess aus, in dem die Lösung ausgeführt wird. Außerdem werden im Prozess eine Shim-DLL (Dynamic Link Library) und anschließend die Lösungsassembly geladen.

  3. Während die Lösung ausgeführt wird, durchläuft der Code den Shim vor der Ausführung durch SharePoint Foundation. Wenn der Lösungscode versucht, APIs zu verwenden, die von Sandkastenlösungen nicht verwendet werden können, verhindert der Shim das Durchlaufen und Ausführen des Codes und signalisiert stattdessen eine Ausnahme.

  4. SharePoint Foundation überwacht die von Sandkastenlösungen verwendeten Ressourcen. Wenn eine Sandkastenlösung eine feste Grenze überschreitet (wenn sie beispielsweise mehr als die vordefinierte CPU-Zeit verwendet), beendet SharePoint Foundation den Sandkastenarbeitsprozess. Wenn die Kombination aller Sandkastenlösungen in der Websitesammlung das Ressourcenkontingent der Websitesammlung überschreitet, deaktiviert SharePoint Foundation alle Sandkastenlösungen in der Websitesammlung für den Rest des Tages.

  5. Ein Websitesammlungsadministrator kann die von Sandkastenlösungen verwendeten Ressourcen überwachen und Lösungen in der Websitesammlung deaktivieren.

Falls erforderlich, kann ein Farmadministrator eine Lösung für die Ausführung in der Farm blockieren. Optional kann ein Farmadministrator auch die Anforderung für die Ausführung einer Lösung in einem Sandkasten aufheben. Wenn die Anforderung für die Ausführung in einem Sandkasten aufgehoben und die Lösung dann in einer beliebigen Websitesammlung der Farm ausgeführt wird, erfolgt dies nicht mehr in einem Sandkasten.

Isolieren von Sandkastenlösungen

Sie können Sandkastenlösungen auf verschiedenen Ebenen isolieren. Mit jeder weiteren Isolationsebene wird Ihre Fähigkeit erhöht, den Hauptteil der SharePoint Foundation-Website vor Code zu schützen, der u. U. zu viele Ressourcen beansprucht. Auf der ersten Ebene wird Sandkastencode in einem isolierten Prozess mit eingeschränkten Rechten ausgeführt. Codezugriffssicherheit (Code Access Security, CAS) beschränkt die Vorgänge, die der Code ausführen kann. Sie können die Isolation steigern, indem Sie Remotelastenausgleich verwenden und den Sandkastendienst nur auf bestimmten Servern ausführen. In einer Produktionsumgebung wird empfohlen, Remotelastenausgleich zu verwenden und einen separaten Server für die Ausführung von Sandkastenlösungen zuzuweisen.

Welche Inhalte kann eine Sandkastenlösung nicht enthalten?

Eine SharePoint Foundation-Lösung muss die Konfigurationsdatei manifest.xml enthalten, und sie kann zusätzliche Konfigurationsdateien und Assemblys enthalten. Wenn die Lösung in einem Sandkasten ausgeführt wird, sind die Inhalte von Assembly und Konfigurationsdateien eingeschränkt.

Die folgende Liste enthält die gängigsten Aktionen, die eine in einem Sandkasten ausgeführte Assembly nicht ausführen kann.

  • Herstellen von Verbindungen mit Ressourcen, die sich nicht auf dem lokalen Server befinden.

  • Zugriff auf eine Datenbank.

  • Ändern des Threadingmodells.

  • Aufrufen von nicht verwaltetem Code.

  • Schreiben auf Datenträger.

  • Zugriff auf Ressourcen in einer anderen Websitesammlung.

Die Datei manifest.xml bezieht sich auf Featuredateien, Featuredateien beziehen sich auf Elementdateien, und Elementdateien enthalten feature-Elemente. Die einzigen in einer Sandkastenlösung zulässigen feature-Elemente sind:

  • ContentType

  • Field

  • CustomAction

  • Module

  • ListInstance

  • ListTemplate

  • Receivers

  • WebTemplate

  • WorkflowAssociation

  • PropertyBag

  • WorkflowActions

Vergleich von Sandkasten- und Farmlösungen

In der folgenden Tabelle werden die Aspekte der in einer Farm ausgeführten Lösungen mit den Lösungen verglichen, die in einem Sandkasten ausgeführt werden.

Aspekt Farm Sandkasten

Bereitstellungsvorgang

Fügen Sie Lösung hinzu, und stellen Sie sie dann in der Farm bereit.

Laden Sie die Lösung in eine Websitesammlung hoch, und aktivieren Sie sie dann in der Websitesammlung.

Bereitstellung möglich durch

Farmadministrator.

Wenn die Lösung eine Assembly enthält, kann sie nur von einem Websitesammlungsadministrator bereitgestellt werden. Enthält die Lösung keine Assembly, kann sie von einem Benutzer mit Vollzugriff auf den Stamm der Websitesammlung bereitgestellt werden.

Datenzugriff

Uneingeschränkt

Die Lösung kann nur auf Inhalte der Websitesammlung zugreifen, in der sie bereitgestellt wurde.

Prozess, in dem die Lösung ausgeführt wird

Uneingeschränkter IIS-Arbeitsprozess oder der Prozess, mit dem die Lösung bereitgestellt wurde.

Separate Arbeitsprozesse mit eingeschränkten Rechten.

Codezugriffssicherheit

Der Lösungsentwickler kann die Codezugriffssicherheit beim Packen der Lösung festlegen.

Eingeschränkt. Weitere Informationen finden Sie unter Bereitstellen einer Sandkastenlösung (http://go.microsoft.com/fwlink/?linkid=177369&clcid=0x407).

Überwachung

Nicht überwacht.

Überwacht und durch Kontingente begrenzt, die der Farmadministrator festlegt.

Lastenausgleich

Variiert abhängig von der Art der Lösung.

Separat von Nicht-Sandkastenlösungen konfigurierbar.

Lösungsfunktionalität

Uneingeschränkt

Eingeschränkt, wie in Welche Inhalte kann eine Sandkastenlösung nicht enthalten? beschrieben.

Vorteile der Verwendung von Sandkastenlösungen

Die wichtigsten Vorteile der Verwendung von Sandkastenlösungen lauten wie folgt:

  • Die Lösungen können einer SharePoint Foundation-Produktionsumgebung ohne das Risiko hinzugefügt werden, dass sich dies auf Prozesse außerhalb des Sandkastens auswirkt.

  • Websitesammlungsadministratoren können Sandkastenlösungen bereitstellen, sodass sich Farmadministratoren nicht mit dieser Aufgabe beschäftigen müssen.

  • Skalierbarkeit und Flexibilität werden erhöht, da Sandkästen in separaten Prozessen ausgeführt werden, die durch Kontingente eingeschränkt werden können. Darüber hinaus können die Auswirkungen auf die Farm überwacht werden.

  • Eine Lösung muss nicht geändert oder neu kompiliert werden, wenn sie aus einem Sandkasten verschoben wird, um direkt in der Farm ausgeführt zu werden.

See Also

Concepts

Planen von Sandkastenlösungen (SharePoint Foundation 2010)

Other Resources

Verwaltung von Sandkastenlösungen (SharePoint Foundation 2010)
Architektur von Sandkastenlösungen (http://go.microsoft.com/fwlink/?linkid=177368&clcid=0x407)
Bereitstellen einer Sandkastenlösung (http://go.microsoft.com/fwlink/?linkid=177369&clcid=0x407)