Debugging und Problembehandlung eines Remoteereignisempfängers in einem Add-In für SharePoint
Konfigurieren des Debuggens für eine SharePoint-Remotetestwebsite
Hinweis
Die Verfahren in diesem Abschnitt gelten nur, wenn sich die SharePoint-Testwebsite auf einem anderen Computer als Visual Studio befindet (oder wenn Sie eine SharePoint Online-Entwicklerwebsite als Testwebsite verwenden). Wenn sich SharePoint und Visual Studio auf demselben Computer befinden, überspringen Sie diesen Abschnitt.
Wenn ein SharePoint-Add-In-Projekt in Visual Studio einen Remoteereignisempfänger (RER) oder einen Add-In-Ereignisempfänger umfasst, müssen Sie ein zusätzliche schnelle Konfiguration in den Projekteigenschaften ausführen, bevor Sie das Add-In mit (F5) debuggen können. Diese Konfiguration erfordert wiederum eine zusätzliche Azure-Konfiguration. Sie müssen die Azure-Konfiguration nicht für jedes Projekt wiederholen, das über einen RER oder ein Add-In-Ereignis verfügt. (Wenn das Add-In den Ereignishandler „AppInstalled“ enthält, wird das Add-In auch nicht mit F5 oder STRG+F5 [Ausführen ohne Debuggen] ausgeführt, es sei denn, Sie führen die Konfiguration in diesem Abschnitt aus.)
So konfigurieren Sie Azure
Beschaffen Sie sich ein Microsoft Azure-Abonnement, falls Sie noch keines haben. In einem MSDN-Abonnement ist bereits ein solches enthalten.
Führen Sie die Anweisungen unter Erstellen eines Servicebus-Namespace aus.
So konfigurieren Sie das SharePoint-Add-In-Projekt in Visual Studio
Sie sollten über die neueste Version der Office-Entwicklertools für Visual Studio verfügen. Führen Sie daher hier das WebPI-Installationsprogramm oder das Installationsprogramm für Office Developer Tools für Visual Studio 2015 aus.
Klicken Sie nach dem Hinzufügen eines RER oder eines Add-In-Ereignishandlers zu einem SharePoint-Add-In-Projekt in Visual Studio im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie Eigenschaften aus.
Öffnen Sie im Eigenschaftenbereich die Registerkarte SharePoint, und führen Sie einen Bildlauf nach unten aus.
Wählen Sie das Kontrollkästchen Debuggen über Microsoft Azure Service Bus aktivieren.
Geben Sie die vollständige Verbindungszeichenfolge in das bereitgestellte Textfeld ein. Sie erhalten die Zeichenfolge mit den folgenden Schritten.
Melden Sie sich beim Azure-Portal an, und öffnen Sie die Registerkarte Service Bus.
Öffnen Sie den Namespace, den Sie für das Debuggen des RER erstellt haben, und navigieren Sie zu den Verbindungszeichenfolgen. Die Benutzeroberfläche des Azure-Portals wird häufig geändert. Wenn Sie die Verbindungszeichenfolgen nicht finden können, sehen Sie in der Hilfe zum Azure-Portal nach.
Kopieren Sie die SAS-Verbindungszeichenfolge. Das ist die Zeichenfolge, die Sie in den Visual Studio-Projekteigenschaften eingegeben haben.
Wen Sie in Zukunft SharePoint-Add-In-Projekte in Visual Studio erstellen, sind diese Informationen bereits ausgefüllt, sodass Sie nicht jedes Mal das Azure-Portal öffnen müssen.
Testen der Konfiguration
Verwenden Sie die Verfahren in diesem Abschnitt, um sicherzustellen, dass Sie ein RER debuggen können.
So erstellen Sie ein Remoteereignisempfängerprojekt
Erstellen Sie in Visual Studio ein vom Anbieter gehostetes SharePoint-Add-In. Weitere Informationen dazu finden Sie unter Erste Schritte beim Erstellen von von einem Anbieter gehosteten SharePoint-Add-Ins.
Wählen Sie im Projektmappen-Explorer den Knoten des Add-In-Projekts aus.
Wählen Sie auf der Menüleiste Projekt>Neues Element hinzufügen aus.
Wählen Sie im Bereich Vorlagen die Vorlage Liste aus, und wählen Sie dann Hinzufügen aus.
Wählen Sie die Schaltfläche Fertig stellen aus, um dem Add-In-Projekt eine benutzerdefinierte Standardliste hinzuzufügen.
Fügen Sie dem Add-In-Projekt ein weiteres Element hinzu, indem Sie im Bereich Vorlagen die Vorlage Remoteereignisempfänger auswählen.
Lassen Sie den Standardnamen im Feld Name unverändert (RemoteEventReceiver1), und wählen Sie dann Hinzufügen aus.
Wählen Sie in der Liste Welchen Typ soll der Ereignisempfänger aufweisen? die Option Listenelementereignisse aus. Belassen Sie die Ereignisquelle als List1, die Liste, die Sie im vorhergehenden Schritt hinzugefügt haben.
Wählen Sie in der Liste Die folgenden Ereignisse behandeln die Option Ein Element wird hinzugefügt aus, und klicken Sie anschließend auf Fertig stellen.
Der Webanwendung wird ein Webdienst zur Behandlung des von Ihnen angegebenen Remoteereignisses hinzugefügt. Der SharePoint-Add-In wird ein Remoteereignisempfänger hinzugefügt. Der Empfänger referenziert den Webdienst und das Listenelementereignis in der Datei "Elements.xml" des Ereignisempfängers.
Öffnen Sie in der Add-In-Projekt die Datei „AppManifest.xml“.
Ändern Sie die Startseite in die Seite der Liste: AddInProjectName /Lists/List1.
Ersetzen Sie AddInProjectName durch den Namen des Add-In-Projekts, z. B.
SharePointAddIn4/Lists/List1
. Für dieses Beispiel legen wir die Startseite auf die Seite der Liste fest. In einem typischen Add-In würden Sie jedoch wahrscheinlich auf Ihre eigene Benutzeroberfläche auf der Webprojektseite verweisen.
So führen Sie das Debuggen des Ereignishandlers aus und testen es
Schließen Sie, falls noch nicht geschehen, das im früheren Verlauf dieses Artikels beschriebene Verfahren So konfigurieren Sie das SharePoint-Add-In-Projekt in Visual Studio ab.
Öffnen Sie im Webprojekt den Remoteereignisempfänger-Dienst (RemoteEventReceiver1.svc), und fügen Sie dann in der
ProcessEvent()
-Methode in eine beliebige Codezeile einen Haltepunkt ein.Drücken Sie F5, um das Projekt auszuführen.
Wählen Sie die Schaltfläche Neues Element hinzufügen aus, um der Liste ein neues Element hinzuzufügen.
Geben Sie für das Element eine Bezeichnung an, und wählen Sie dann die Schaltfläche Speichern aus. Der Haltepunkt, den Sie zum Remoteereignisempfänger hinzugefügt haben, wird erreicht, was bestätigt, dass Sie den Remoteereignisempfänger debuggen.
Wählen Sie die Taste F5 aus, um das Projekt weiter auszuführen, und halten Sie dann das Debuggen an, wenn Sie fertig sind.
Aktivieren/Deaktivieren der Visual Studio-Benachrichtigung, dass das Ereignisdebugging konfiguriert werden muss
Wenn Sie in Ihrem Projekt über ein Remoteereignis verfügen und Remoteereignisdebuggingn nicht konfiguriert haben, werden Sie von Visual Studio aufgefordert, das Remoteereignisdebugging zu konfigurieren (siehe folgende Abbildung). Sie können dieses Verhalten ändern, indem Sie das Kontrollkästchen Benachrichtigen, wenn Remoteereignisdebugging nicht konfiguriert ist auf der Registerkarte SharePoint deaktivieren.
Benachrichtigung zum Remoteereignisdebugging
Sicherstellen, dass der Dienst im Servicebus gehostet wird
Nachdem Sie F5 gedrückt und dem Add-In vertraut haben, wechseln Sie in Ihrem Browser zum Servicebus-Namespace, z. B. http://mynamespace.servicebus.windows.net
. Daraufhin wollten Sie den Endpunkt als Zahl aufgeführt sehen. Die folgende Abbildung zeigt, wie die Seite aussieht, wenn ein Namespacenicht aufgeführt ist, das ist, bevor Sie F5 drücken.
Navigieren zum Servicebus-Namespace
RER erreicht nicht den Haltepunkt
Je nach Ereignis kann das Remoteereignis synchron oder asynchron sein. Bei einem asynchronen Ereignis dauert es möglicherweise einige Sekunden oder mehr, bis der Haltepunkt erreicht wird.
Fehler: „Es war kein abhörender Endpunkt vorhanden“
Wenn Ihr Handler in der Produktionsumgebung ausgeführt wird, erhalten Sie die folgende Fehlermeldung:
"Das Aufrufen des Remoteereignisempfängers ist fehlgeschlagen. Details: Es wurde kein Endpunkt lauscht, der https://{domain}:nnnnn/{path}/AppEventReceiver.svc
die Nachricht akzeptieren konnte. Dies wird häufig durch eine falsche Adresse oder SOAP-Aktion verursacht." (wobei nnnnn ein Port ist).
SharePoint erfordert, dass kein expliziter Port in der URL des Handlers in der Produktion verwendet wird. Dies bedeutet, dass Sie entweder Port 443 für HTTPS (Empfehlung) oder Port 80 für HTTP verwenden müssen.
Fehler: „Es konnte keine Vertrauensstellung für den sicheren SSL/TLS-Channel mit Autorität eingerichtet werden“
Wenn Ihr Handler in der Produktionsumgebung ausgeführt wird, erhalten Sie die folgende Fehlermeldung:
"Das Aufrufen des Remoteereignisempfängers ist fehlgeschlagen. Details: Es konnte keine Vertrauensstellung für den sicheren SSL/TLS-Kanal mit Autorität hergestellt werden."
Wenn sich das Add-In in SharePoint Online befindet, der Remoteereignisempfänger-Dienst jedoch, wie empfohlen, lokal ist und HTTPS verwendet, kann der Server, auf dem der Empfänger gehostet wird, kein selbst signiertes Zertifikat in der Produktion verwenden. Der Server muss über ein öffentlich akzeptiertes Zertifikat von einer Zertifizierungsstelle verfügen. Wenn sich das Add-In in einer lokalen SharePoint-Farm befindet, sind selbst signierte Zertifikate akzeptabel.