So wird's gemacht: Aktivieren von Loopback und Problembehandlung bei der Netzwerkisolation (Windows-Runtime-Apps)
[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]
In diesem Thema wird erläutert, wie Sie in Windows 8 für eine Windows Store-App Loopback für den Netzwerkzugriff aktivieren und Probleme bei der Netzwerkisolation beheben.
Wissenswertes
Technologien
Windows.Networking.BackgroundTransfer
Ermöglicht erweiterte Übertragungsfunktionen für Downloads und Uploads.
-
Ermöglicht die Netzwerkkommunikation mit Sockets und WebSockets.
-
Ermöglicht den Zugriff auf Webressourcen mithilfe des AtomPub-Protokolls.
-
Verwaltet Veröffentlichungsfeeds.
-
Ermöglicht das Herstellen einer Verbindung mit Webdiensten über einen modernen Webclient.
-
Ermöglicht das Herstellen einer Verbindung mit Webdiensten über einen Webclient.
Voraussetzungen
- Die folgenden Informationen gelten für alle verbundenen oder netzwerkfähigen Windows-Runtime-Apps, die Netzwerkverbindungen herstellen müssen. Dies betrifft in JavaScript geschriebene Apps. Dies betrifft auch mithilfe von .NET Framework 4.5 in C#, VB.NET und C++ geschriebene Apps.
Diagnoseprogramm für die Netzwerkisolation
Das Diagnoseprogramm CheckNetIsolation.exe wird bereitgestellt, um Entwickler beim Testen, beim Durchführen einer Diagnose und bei der Problembehandlung bei einer App zu unterstützen, die Netzwerkfunktionen benötigt. Bei CheckNetIsolation.exe handelt es sich um ein Befehlszeilenprogramm, das Eingabeparameter aus der Befehlszeile annimmt. Es verfügt über zwei Optionen:
LoopbackExempt
Mit dieser Option können Sie installierte Apps anzeigen, die von IP-Loopbackbeschränkungen ausgenommen sind und Zugriff auf Loopbackadressen haben. Mithilfe dieser Option können Sie beim Testen zudem IP-Loopbackadressen den Zugriff auf eine bestimmte App gewähren.Debug
Diese Option ermittelt die aktivierten Funktionen, die von einer App verwendet werden, sowie alle aktivierten Funktionen, die nicht verwendet werden. Jede aktivierte Funktion, die nicht verwendet wird, macht die App weniger sicher. Diese Option kann auch Informationen zum Netzwerkverkehr bereitstellen, der u. U. unabsichtlich unterbrochen wurde.
Mit CheckNetIsolation.exe kann eine Hilfemeldung mit mit Informationen zur Verwendung anzeigen. Verwenden Sie den folgenden Beispielbefehl, wenn Sie die Hilfe anzeigen möchten.
CheckNetIsolation -?
Bei einigen CheckNetIsolation.exe-Optionen muss der Name oder die ID der App angegeben werden. Nach dem Bereitstellen einer App auf einem Zielcomputer finden Sie den Namen der App im Ordner c:\Program Files\Applications. Hierbei handelt es sich um den Namen, der zum Starten der App verwendet wird. Es ist der Paketfamilienname, der angezeigt wird, wenn Sie Microsoft Visual Studio 2013 verwenden, und der den App-Container darstellt. Die App-ID finden Sie in der Registrierung unter dem folgenden Schlüssel:
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer
Aktivieren von Loopback für den Netzwerkzugriff
Die Netzwerkkommunikation mit einer IP-Loopbackadresse kann in einer Windows-Runtime-App aufgrund der Netzwerkisolation nicht für die prozessübergreifende Kommunikation (zwischen zwei verschiedenen Apps) verwendet werden. Die Netzwerkkommunikation mit einer IP-Loopbackadresse ist innerhalb einer Anwendung im selben Prozess zu Kommunikationszwecken zulässig.
Ein Entwickler kann Loopback zum Testen oder Debuggen verwenden, auch wenn diese Funktion für Kunden nicht verfügbar ist. Beispiel: Eine App möchte Daten über einen Webdienst aus einer Windows-Runtime-App herunterladen. Der Entwickler möchte die App bei der Entwicklung auf einem einzelnen Computer testen, der mit dem Webdienst lokal unter 127.0.0.1 konfiguriert wurde.
Hinweis Loopback ist nur für Entwicklungszwecke zulässig. Die Verwendung durch eine außerhalb von Visual Studio installierte Windows-Runtime-App ist nicht erlaubt. Außerdem kann eine Windows-Runtime-App eine IP-Loopbackadresse nur als Zieladresse für eine Netzwerkanforderung eines Clients verwenden. Eine Windows-Runtime-App, die mit einem DatagramSocket oder StreamSocketListener auf eine IP-Loopbackadresse lauscht, kann daher keine eingehenden Pakete empfangen.
Um den Zugriff auf Loopbackadressen zu ermöglichen, muss ein Entwickler die Netzwerkisolation konfigurieren, um die App aus den Loopbackbeschränkungen auszunehmen. Damit ein Netzwerkdienst Pakete empfangen kann, muss der Listener am TCP- oder UDP-Port durch Firewallregeln zugelassen werden.
In Visual Studio installierte und ausgeführte Apps werden automatisch so registriert, dass sie von den Loopbackbeschränkungen ausgenommen werden. Entwickler können die Liste mit ausgenommenen Apps anzeigen, indem sie den folgenden Befehl ausführen:
CheckNetIsolation.exe LoopbackExempt -s
Ein Entwickler kann auch das Programm CheckNetIsolation.exe verwenden, um Loopbackausnahmen für die App manuell hinzuzufügen.
Wenn Sie eine App aus den Loopbackausnahmen ausnehmen möchten, müssen Sie die App-ID für das Paket angeben. Mit dem folgenden Beispielbefehl wird eine App aus den Loopbackbeschränkungen ausgenommen.
CheckNetIsolation.exe LoopbackExempt –a –p=S-1-15-2-4125766819-3228448775-2449327860-2490758337-1264241865-3581724871-2122349299
Zudem kann die Ausnahme aus Loopbackbeschränkungen für eine bestimmte App entfernt werden. Mit dem nachfolgenden Beispielbefehl wird die Loopbackausnahme für dieselbe App entfernt.
CheckNetIsolation.exe LoopbackExempt –d –p=S-1-15-2-4125766819-3228448775-2449327860-2490758337-1264241865-3581724871-2122349299
Mit dem Programm CheckNetIsolation.exe kann ein Entwickler eine App auch basierend auf dem Namen des App-Containers aus diesen Loopbackbeschränkungen ausnehmen. Mit dem folgenden Beispielbefehl wird eine App basierend auf dem Namen des App-Containers aus den Loopbackbeschränkungen ausgenommen.
CheckNetIsolation.exe LoopbackExempt –a –n=stocks_mw26f2swbd5nr
Die Ausnahme aus Loopbackbeschränkungen kann für eine App, die mit .NET Framework geschrieben wurde, aus diesen Loopbackbeschränkungen auch basierend auf dem Namen des App-Containers entfernt werden. Mit dem nachfolgenden Beispielbefehl wird die Loopbackausnahme für dieselbe App entfernt.
CheckNetIsolation.exe LoopbackExempt –d –n=stocks_mw26f2swbd5nr
Zudem kann die Ausnahme aus Loopbackbeschränkungen für alle installierten Apps entfernt werden. Mit dem nachfolgenden Beispielbefehl wird die Loopbackausnahme für alle auf dem lokalen Computer installierten Apps entfernt.
CheckNetIsolation.exe LoopbackExempt –c
Debuggen von Problemen bei der Netzwerkisolation
Die Debugoption wird verwendet, um einen Bericht über Netzwerkfunktionen zu erstellen, die von einer App verwendet werden.
Die Debugoption bietet eine Möglichkeit festzustellen, ob eine App alle Funktionen verwendet, die im Manifest der App deklariert wurden. Bei der Verwendung der Debugoption wird das System angewiesen nachzuverfolgen, welche deklarierten Funktionen von der App verwendet werden und welche nicht verwendet werden.
Wenn Sie die Debugoption verwenden möchten, stellen Sie zunächst die App auf dem Zielcomputer bereit und legen die App-ID und den App-Namen fest. Anschließend öffnen Sie ein Befehlszeilenfenster mit erweiterten Berechtigungen (als Administrator ausführen). Mit dem folgenden Beispielbefehl wird die Debugoption für eine bestimmte App-ID festgelegt.
CheckNetIsolation.exe Debug –p=S-1-15-2-4125766819-3228448775-2449327860-2490758337-1264241865-3581724871-2122349299
Mit dem folgenden Beispielbefehl wird die Debugoption basierend auf dem Namen des App-Containers für eine App festgelegt.
CheckNetIsolation.exe Debug –n=stocks_mw26f2swbd5nr
Nachdem Sie die Debugoption festgelegt haben, starten Sie die App über ein Befehlszeilenfenster mit erweiterten Berechtigungen. Sie müssen die App ausführen und mit Vorgängen testen, die von der App ausgeführt werden. Drücken Sie STRG+C, wenn Sie den Test abgeschlossen haben und die App noch ausgeführt wird. Im Befehlszeilenfenster wird ein Zusammenfassungsbericht angezeigt, in dem der Status von Netzwerkfunktionen mit einem Eintrag für jede Funktion aufgelistet ist, wobei jeder Eintrag angibt, ob die Funktion deklariert wurde und ob sie verwendet wird. Wenn nicht verwendete Funktionen deklariert wurden, wird im Zusammenfassungsbericht angegeben, dass eine Funktion nicht verwendet wird (im Zusammenfassungsbericht mit "Nicht verwendet" und "Unsicher" angegeben). In einem ausführlichen Bericht über den Datenverkehr wird auch die IP-Adresse der Quelle und des Ziels angegeben, die für den Netzwerkzugriff verwendet wird.
Im folgenden Text wird die Ausgabe für eine App angezeigt, mit der die überschüssigen Funktionen aktiviert werden.
Network Isolation Debug Session started.
Reproduce your scenario, then hit Ctrl-C when done.
Summary Report
Network Capabilities Status
----------------------------------------------------------------------
InternetClient Not Used and Insecure
InternetClientServer Not Used and Insecure
PrivateNetworkClientServer Used and Declared
Detailed Traffic Report
----------------------------------------------------------------------
InternetClient Not Used and Insecure
----------------------------------------------------------------------
InternetClientServer Not Used and Insecure
----------------------------------------------------------------------
PrivateNetworkClientServer Used and Declared
------------------------------------------------------------------
10.195.58.77 10.195.58.78
Im folgenden Text wird die Ausgabe für eine App angezeigt, mit der die geeigneten Funktionen aktiviert werden.
Network Isolation Debug Session started.
Reproduce your scenario, then hit Ctrl-C when done.
Summary Report
Network Capabilities Status
----------------------------------------------------------------------
PrivateNetworkClientServer Used and Declared
Detailed Traffic Report
----------------------------------------------------------------------
PrivateNetworkClientServer Used and Declared
------------------------------------------------------------------
10.195.58.77 10.195.58.78
Verwandte Themen
Hinzufügen von Unterstützung für Netzwerke