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

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

Konfigurieren von Netzwerkisolationsfunktionen

Problembehandlung und Debuggen von Netzwerkverbindungen