Freigeben über


Überlegungen zu Sandkastenlösungen

Sandkastenlösungen sind ein Feature in Microsoft SharePoint 2010, mit dem Websitesammlungsbenutzer ihre eigenen benutzerdefinierten Codelösungen hochladen können. Eine gängige Sandkastenlösung ist das Hochladen eigener Webparts durch Benutzer.

Eine SharePoint-Sandkastenanwendung wird in einem sicheren, überwachten Prozess ausgeführt, der Zugriff auf einen begrenzten Teil der Webfarm hat. Microsoft SharePoint 2010 verwendet eine Kombination aus Features, Lösungskatalogen, Lösungsüberwachung und einem Validierungsframework, um Sandkastenlösungen zu ermöglichen.

Angeben der Projektvertrauensebene

Visual Studio unterstützt Sandkastenlösungen über eine boolesche Projekteigenschaft namens Sandkastenlösung. Diese Eigenschaft kann jederzeit im Projekt festgelegt oder beim Erstellen des Projekts im Assistenten zum Anpassen von SharePoint angegeben werden.

Hinweis

Das Ändern der Eigenschaft Sandkastenlösung eines Projekts nach seiner Erstellung kann zu Validierungsfehlern führen.

Die Lösung gilt als Lösung mit Farmumfang, wenn die Eigenschaft Sandkastenlösung auf false festgelegt ist oder Sie die Option Als Farmlösung bereitstellen auswählen. Die Lösung wird jedoch anders als eine Farmlösung behandelt, wenn die Eigenschaft Sandkastenlösung auf true festgelegt ist oder Sie im Assistenten die Option Als Sandkastenlösung bereitstellen auswählen.

SharePoint-Websitehierarchie

Um zu verstehen, wie Sandkastenlösungen funktionieren, hilft die Kenntnis, dass der Bereich von SharePoint-Websites hierarchisch organisiert ist. Das oberste Element wird als Webfarm bezeichnet, und ihm sind andere Elemente untergeordnet:

Webfarm

Webanwendung A

Websitesammlung A1

Website A1a

Webanwendung B

Websitesammlung B1

Website B1a

Website B1b

Websitesammlung B2

Website B2a

Wie Sie sehen, können Webfarmen eine oder mehrere Webanwendungen enthalten, die wiederum eine oder mehrere Websitesammlungen enthalten können, die Unterwebsites enthalten können usw. Änderungen, die an einer Websitesammlung vorgenommen werden, wirken sich nur auf diese Websitesammlung und keine andere aus. Änderungen, die auf Webfarmebene vorgenommen werden, wirken sich jedoch auf alle Websitesammlungen in der Farm aus.

Windows SharePoint Services (WSS) 3.0 ermöglicht es Ihnen, Lösungen nur auf Farmebene bereitzustellen, aber mit Microsoft SharePoint Foundation können Sie entweder auf Farmebene (Farmlösung) oder auf Websitesammlungsebene (Sandkastenlösung) bereitstellen.

Gründe für Sandkastenlösungen

In WSS 3.0 konnten Lösungen nur auf Farmebene bereitgestellt werden. Dies bedeutete, dass potenziell schädliche oder destabilisierende Lösungen bereitgestellt werden konnten, die sich auf die gesamte Webfarm und alle anderen Websitesammlungen und Anwendungen auswirkten, die darunter ausgeführt wurden. Mithilfe von Sandkastenlösungen können Sie Ihre Lösungen jedoch in einem Teilbereich der Farm, einer bestimmten Websitesammlung, bereitstellen. Um zusätzlichen Schutz zu bieten, wird die Assembly der Lösung nicht in den IIS-Hauptprozess (w3wp.exe) geladen. Stattdessen wird sie in einen separaten Prozess (SPUCWorkerProcess.exe) geladen. Dieser Prozess wird überwacht und implementiert Kontingente sowie Drosselung, um die Farm vor Sandkastenlösungen zu schützen, die schädliche Aktivitäten ausführen, z. B. das Ausführen enger Schleifen, die CPU-Zyklen verbrauchen.

Windows SharePoint Services 2010 verfügt über ein Feature, das als „Lösungskatalog der Websitesammlung“ bezeichnet wird. Sie können über die Seite der SharePoint 2010-Zentraladministration auf diese Funktion zugreifen, oder indem Sie das Menü Websiteaktionen öffnen, Websiteeinstellungen auswählen und dann den Link Lösungen unter Kataloge auf der SharePoint-Website auswählen. Lösungskataloge sind Repositorys mit Lösungen, mit denen Websitesammlungsadministratoren Lösungen in ihren Websitesammlungen verwalten können.

Der Lösungskatalog ist eine Dokumentbibliothek, die im Stammweb der SharePoint-Website gespeichert ist. Der Lösungskatalog ersetzt Websitevorlagen und unterstützt Lösungspakete. Wenn eine SharePoint-Lösungspaketdatei (WSP) hochgeladen wird, wird sie als Sandkastenlösung verarbeitet.

Einschränkungen für Sandkastenlösungen

Wenn eine Sandkastenlösung bereitgestellt wird, wird das Array der für die Lösung verfügbaren SharePoint-Funktionalitäten eingeschränkt, um mögliche Sicherheitsrisiken zu verringern. Einige dieser Einschränkungen umfassen Folgendes:

  • Sandkastenlösungen steht eine eingeschränkte Teilmenge von bereitstellungsfähigen Lösungselementen zur Verfügung. Potenziell anfällige SharePoint-Projektvorlagen wie Websitedefinitionen und Workflows sind nicht verfügbar.

  • SharePoint führt Sandkastenlösungscode in einem Prozess (SPUCWorkerProcess.exe) aus, der vom Hauptprozess des IIS-Anwendungspools (w3wp.exe) getrennt ist.

  • Dem Projekt können keine zugeordneten Ordner hinzugefügt werden.

  • Typen aus der Microsoft SharePoint Server-Assembly „Microsoft.Office.Server“ können nicht in Sandkastenlösungen verwendet werden. Außerdem können nur Typen aus der Microsoft SharePoint Foundation-Assembly „Microsoft.SharePoint“ in Sandkastenlösungen verwendet werden.

    Es ist wichtig zu beachten, dass die Angabe einer SharePoint-Lösung als Sandkastenlösung keine Auswirkungen auf den SharePoint-Server hat. Dadurch wird nur bestimmt, wie das SharePoint-Projekt von Visual Studio in SharePoint bereitgestellt und an welche Assemblys es gebunden wird. Dies wirkt sich nicht auf die generierte WSP-Datei aus, und die WSP-Datei enthält keine Daten, die direkt mit der Eigenschaft Sandkastenlösung korrelieren.

Funktionen und Elemente in Sandkastenlösungen

Sandkastenlösungen unterstützen die folgenden Funktionen und Elemente:

  • Inhaltstypen/Felder

  • Benutzerdefinierte Aktionen

  • Deklarative Workflows

  • Ereignisempfänger

  • Funktionslegenden

  • Definitionen auflisten

  • Listeninstanzen

  • Modul/Dateien

  • Navigation

  • Onet.xml

  • SPItemEventReceiver

  • SPListEventReceiver

  • SPWebEventReceiver

  • Unterstützung für alle Webparts, die von System.Web.UI.WebControls.WebParts.WebPart abgeleitet werden

  • Webparts

  • WebTemplate-Featureelemente (anstelle von Webtemp.xml)

  • Visuelle Webparts

    Sandkastenlösungen unterstützen die folgenden Funktionen und Elemente nicht:

  • Anwendungsseiten

  • Benutzerdefinierte Aktionsgruppe

  • Funktionen mit Farmumfang

  • HideCustomAction-Element

  • Funktionen mit Webanwendungsumfang

  • Workflows mit Code