Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SharePoint 2016-Administration Grundkurs

Exkurs: HTTP, IIS, ASP.NET und WCF

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Jedes mal, wenn ein Benutzer eine SharePoint-Seite im Browser aufruft oder wenn Anwendungen Metadaten vom Server abrufen, wird ein Prozess gestartet, in welchem viele Dienste und Komponenten miteinander kommunizieren. Für den Farm-Administrator ist es enorm wichtig, diesen Prozessablauf zu kennen und zu wissen, welcher Dienst mit welchen Komponenten kommuniziert.

Transkript

Im Betrieb einer SharePoint-Farm kommt es aus Erfahrung häufig zu seltsamen Fehlern, Fehlermeldungen, und auch sehr häufig zu Fehlermeldungen, die am Ende gar keine sind. Und der Farmadministrator steht häufig vor dem Problem, dass er nicht weiß, wo er mit der Auflösung der Fehler beginnen soll. Im folgenden Video möchte ich Ihnen einen Crashkurs über das Thema HTTP, Internet Information Server und ASP.NET geben und Ihnen ein Grundverständnis vermitteln für die Abläufe, die hinter einer SharePoint-Farm stecken. Für mich persönlich ist das Wissen um diesen Ablauf die Grundlage dafür, nahezu jeden Fehler im Zusammenhang mit einer SharePoint-Farm auflösen zu können, beziehungsweise zumindest feststellen zu können, woher dieser Fehler kommt. Wenn ein User eine Adresse im Browser eintippt, startet er damit einen HTTP Request. Man kann HTTP als Protokoll auch durchaus mit dem klassischen Anklopfen-Protokoll vergleichen. Das bedeutet, das Anklopfen regelt letztlich den Zutritt zu einem Raum. Wenn ich irgendwo hinein möchte, klopfe ich an und von innen kommt die Antwort "Herein". Dieser Ablauf ist ein Protokoll. Dieses Protokoll setzt keine Sprache voraus, sondern ich kann anklopfen und erhalte von innen die deutsche Antwort "Herein" oder ich erhalte die englische Antwort "Come in". Das heißt, das Protokoll regelt nur das Verfahren. Wenn ein Kollege eine Website intranet.meinefirma.de aufruft, stellt er damit die Verbindung her zum Gegenstück auf der anderen Seite, zum Internet Information Server. Dieser Internet Information Server implementiert nun das HTTP-Protokoll. Das bedeutet, ein Programmierer hat irgendwo beim W3C-Konsortium, beim World-Wide-Web-Konsortium nachgelesen, was er auf einen Request antworten muss und hat dann einerseits einen Socket programmiert, der permanent auf Anfragen aus dem Netz wartet, diese Anfragen entgegennimmt und dann protokollgemäß antwortet. Das ist die Aufgabe des Internet Information Server. Der kann also eigentlich nur "Herein" sagen beziehungsweise Dokumente ausliefern, mehr kann er gar nicht. ASP.NET ist ein Compiler zu einer dynamischen Generierung von Browser Content. Weil der Web Server, der Internet Information Server, nicht in der Lage ist, parametriert Dokumente auszuliefern, sondern den kann ich nur bitten, mir ein Dokument index.htm an die Hand zu geben, Ich kann ihm aber nicht anweisen, dass er das Dokument für mich ausfüllen soll. Dazu brauche ich einen Compiler, der im Hintergrund dynamisch HTML rendert, es dem Internet Information Server an die Hand gibt, dass der das ausliefert. ASP.NET ist ein solcher Compiler, der mit jedem Request neu angestoßen wird und in einem eigenen Anwendungspool ausgeführt wird. Die Windows Communication Foundation kommt hier auch zum Tragen. Windows Communication Foundation ist ähnlich wie ASP.NET ein Compiler, allerdings wird hier ein Web Service zur Verfügung gestellt, der Objektdaten ausliefert nach einem bestimmten Protokollverfahren. Das heißt, Windows Communication Foundation liefert im Gegensatz zu ASP.NET keinen Content für eine grafische Oberfläche, die ein Browser darstellt, sondern im Wesentlichen Binärdaten, die von einem anderen Programm weiterverarbeitet werden. Windows Communication Foundation kann auch ASP.NET beliefern, damit ASP.NET diese Binärdaten verwendet, um den Browser Content zu rendern. Im HTTP Response Stream wird dann das gerenderte Ergebnis an den Client, an den Browser ausgeliefert, sodass der Browser das Ergebnis des Bytestroms analysieren und darstellen kann. Der Internetinformationsdienste-Manager beziehungsweise der Internet Information Server stellt mit Anwendungspools die Möglichkeit zur Verfügung, Prozesse zu definieren, die immer den gleichen Namen tragen, w3wp.exe, die vom IIS, vom Internet Information Server verwaltet werden. Der IIS, wenn er gestartet wird, kann diese Anwendungspools starten unter einem speziellen Konto, kann aber diese Anwendungspools auch beenden. Wird Windows-Authentifizierung am SQL-Server verwendet, wird das Konto des Windows-Prozesses, des w3wp-Prozesses, damit also das Konto, das dem Anwendungspool zugewiesen wurde, für die Authentifizierung am Datenbankserver verwendet. Die Site-Definitionen im Internet Information Server realisieren dagegen die Bindung an eine IP-Adresse, die Bindung an einen TCP-Port. Das heißt, hier werden die sogenannten Sockets implementiert, an die dann ein Request anflanschen kann. Es wird SSL umgesetzt, das Zertifikat wird in der Site-Definition gebunden, die Anwendungskonfiguration ist ASP.NET-seitig definiert, und die Authentifizierung ist auch in der Site-Bindung des IIS-Managers definiert und nicht in SharePoint. Konfliktpotential gibt es auf Ebene des IIS, wenn mehrere Site-Definitionen an die gleiche IP und am gleichen TCP-Port angeflanscht wurden, denn dann weiß der Internetinformationsdienst nicht, welchem Request er jetzt nachkommen soll, wohin er die Anforderung geben soll, an welche Site-Definition. Host-Header-Namen wären eine mögliche Lösung, die aber nicht funktionieren, wenn Verschlüsselung im Spiel ist. Denn bei Verschlüsselung muss erst an die Site zugestellt werden, damit dann das Zertifikat zur Entschlüsselung beziehungsweise der Key des Zertifikats zur Entschlüsselung verwendet werden kann. Es gibt hier noch das Feature Server Name Indication. Server Name Indication veranlasst den Browser dazu, den Host-Header-Namen unverschlüsselt zu übertragen. Hier muss ich mich aber darauf verlassen, dass alle einen Browser einsetzen, der das unterstützt. Zweites Konfliktpotential: ein ungültiges Zertifikat bei der Kommunikation mit einer Dienstanwendung. Die Dienstanwendung geht davon aus, dass kein Benutzer sie bedient, sondern dass sie einen Windows Service quasi darstellt. Wenn nun ein Zertifikat hinterlegt bei einem Request, das ungültig ist oder das aus Sicht der Dienstanwendung ungültig ist, ist niemand da, den die Dienstanwendung fragen kann, es sitzt ja kein Benutzer vorm Rechner. Insoweit bleibt der Dienstanwendung nur die Möglichkeit, den Request als ungültig zu beenden und einen Fehler im Ereignisprotokoll zu vermerken. Sehr häufig führen Fehler in der SharePoint-Farm zurück auf ungültige Zertifikate, die auf den ersten Blick gar nicht bemerkt werden, die erst dann zum Vorschein kommen, wenn man das Ereignisprotokoll des jeweiligen Servers genauer sichtet. Wenn man den Gesamtablauf grafisch veranschaulichen möchte und auf SharePoint bezogen die einzelnen Komponenten zusammenfügen möchte, dann gibt es in der SharePoint-Farm zuerst Dienste auf dem Server. Diese Dienste auf dem Server sind reguläre Windows-Anwendungen, die nur beim Start von Windows automatisiert gestartet werden, die aber nicht im Kontext des Internetinformationsdienstes verwaltet werden. Diese Dienste werden über die Dienstemanagerkonsole verwaltet und schreiben eventuell Daten in Dienstdatenbanken hinein. Wenn ein Client eine Verbindung herstellen möchte mit der SharePoint-Farm, tippt in der Regel ein Benutzer eine Adresse ein im Browser. Weil die Verbindung aber auf Basis des TCP/IP-Protokoll hergestellt wird, muss diese Adresse zuerst aufgelöst werden in eine gültige IP-Adresse. Das bedeutet, DNS ist ein ganz wichtiger Faktor in SharePoint. Denn nur wenn die DNS-Abfragen ordentlich funktionieren, ist es möglich, dass der Client die Verbindung zum Internetinformationsdienst aufruft. Das heißt, er löst zuerst die IP-Adresse auf über das DNS-System und stellt dann die Verbindung her zum TCP-Port 80 bei diesem Aufruf, bei HTTPS zum TCP-Port 443. Wenn hinter der Adresse, also hinter de ein Doppelpunkt folgt und eine Portnummer angegeben wird, wird das Kabel an der anderen Portnummer angeflanscht, wie zum Beispiel bei der Zentraladministration in der Beispielfarm mit 11833. Ist die Verbindung hergestellt, wird der Internet Information Server aktiv, denn der horcht auf diese IP-Adresse an diesem Port. Und stellt nun fest, da möchte jemand die Datei default.aspx haben. In der Konfiguration des Internet Information Server ist hinterlegt, dass alles, was auf .aspx endet, bitte weiterzugeben ist an ASP.NET. Das heißt, der Internet Information Server öffnet die ASPX-Datei. Sie muss für ihn lesbar sein. Daher ist ein Teil von ASPX-Dateien auch als ASCII-Text hinterlegt. Und gibt den Inhalt dieser ASCII-Textdatei weiter an ASP.NET, was einem Kompiliervorgang in einer Programmiersprache gleichkommt. In Visual Basic, in C, in C# schreibt man Code in Textdateien und gibt diese Textdateien an den Compiler. Genauso ist es hier. Der Internetinformationsdienst gibt den Inhalt von default.aspx an ASP.NET. Und ASP.NET arbeitet, die in default.aspx enthaltenen Anweisungen ab. Möglicherweise wird es erforderlich, dass im Rahmen dieser Abarbeitung der Befehle Datenbanken konnektiert werden und Datenbankinhalte in das Ergebnis aktiv einfließen. ASP.NET wird im Kontext des Windowsprozesses w3wp.exe des Anwendungspools der IIS Site-Konfiguration ausgeführt. Wenn gegen die Datenbank Windows-Authentifizierung verwendet wird, wird mit dem Konto, unter dem der Prozess läuft, die Anwendung ausgeführt. Wird keine Windows-Authentifizierung ausgeführt, sondern SQL-Server-Authentifizierung, muss Benutzername und Kennwort irgendwo statisch hinterlegt werden, was letztlich ein Angriffsrisiko darstellen könnte. Im nächsten Schritt kann es sein, dass ASP.NET mit den Web Services, mit den Dienstanwendungs-Proxys der SharePoint-Farm kommuniziert. So könnte eine Suchanfrage zum Beispiel durchaus von ASP.NET weitergereicht werden an den Suchdienst-Controller, an den Suchdienst, der gehostet ist in der Farm. Das bedeutet nun, dass die ASP.NET-Webanwendung, dieser Prozess w3wp plötzlich zum Client wird. Wenn nun die SharePoint-Dienstanwendung unter einem ungültigen Zertifikat veröffentlicht wurde beispielsweise, oder eine Anmeldung ungültig ist, würde ASP.NET seine Arbeit abbrechen und entweder eine Fehlermeldung zurücksenden oder nur ein Ergebnisprotokoll irgendwo festhalten, was genau passiert ist. Auch die SharePoint-Dienstanwendungen sind in einem Anwendungspool zusammengefasst am IIS. Können mit Datenbanken kommunizieren und die Ergebnisse in ihr Binärobjekt einfließen lassen, das sie dann an die aufrufende Anwendung, in unserem Fallbeispiel ASP.NET, zurückliefern. Die erzielten Ergebnisse fließen dann in das Rendering von Browser Content, hier sinnbildlich mit HTML gezeigt, ein. ASP.NET stellt dem Internet Information Server sein gerendertes Ergebnis zu. Der wiederum liefert es dann direkt an den Client aus, sodass am Ende ein Ergebnis im Browser erscheint, das für den Betrachter wie eine SharePoint-Seite aussieht. Der Farmadministrator muss nun bei der Fehlersuche immer wieder entscheiden, auf welcher Ebene ein Fehler aufgetreten ist. Nur dann führt letztlich die Fehlersuche zum Erfolg.

SharePoint 2016-Administration Grundkurs

Lernen Sie, worauf es bei der Planung, Einrichtung und Administration einer SharePoint-Farm auf Basis von SharePoint Server 2016 ankommt.

8 Std. 21 min (66 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:24.10.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!