Kommunikation mit localhost (Loopback)

Wenn Sie unter Windows IoT Core eine TCP/IP-Verbindung zwischen zwei Prozessen erstellen möchten, die auf demselben Gerät ausgeführt werden und einer davon eine UWP-App ist, müssen Sie localhost-Loopback aktivieren.

Loopback und Debugger

Standardmäßig aktiviert die Ausführung unter dem Visual Studio-Debugger das ausgehende Loopback automatisch nur für diese Debugsitzung.  Sie sollten nichts tun müssen, solange das Loopback-Kontrollkästchen in den Debuggereinstellungen für Ihr Startprojekt aktiviert ist.  Wenn Sie einen Socketlistener implementieren möchten, müssen Sie localhost-Loopback für eingehende Verbindungen aktivieren (siehe unten).

Aktivieren der Richtlinie für eingehendes Loopback

Die Localhost-Richtlinie für eingehende Loopbacks für Windows IoT Core muss für UWP-Apps aktiviert sein, die Server implementieren. Diese Richtlinie wird durch den folgenden Registrierungsschlüssel gesteuert:

        [HKEY_LOCAL_MACHINE\system\currentcontrolset\services\mpssvc\parameters]
            "IoTInboundLoopbackPolicy"=dword:00000001

Dieser IoTInboundLoopbackPolicy-Registrierungsschlüsselwert muss zum Aktivieren auf dword:00000001 festgelegt werden. Wenn Sie den IoTInboundLoopbackPolicy-Registrierungswert ändern, müssen Sie einen Neustart durchführen, damit die Änderung wirksam wird.  Die Localhost-Loopbackrichtlinie sollte unter Windows IoT Core standardmäßig aktiviert sein.

Führen Sie den folgenden Befehl auf dem Windows IoT Core-Gerät aus, um zu überprüfen, ob der Wert festgelegt ist:

        reg query hklm\system\currentcontrolset\services\mpssvc\parameters /v IoTInboundLoopbackPolicy

Führen Sie zum Aktivieren der Richtlinie den folgenden Befehl auf dem Windows IoT Core-Gerät aus:

        reg add hklm\system\currentcontrolset\services\mpssvc\parameters /v IoTInboundLoopbackPolicy /t REG_DWORD /d 1

Aktivieren des Loopbacks für eine UWP-Anwendung

Bevor Sie das Loopback für eine Anwendung aktivieren können, benötigen Sie den Paketfamiliennamen. Sie können den Paketfamiliennamen für eine installierte Anwendung ermitteln, indem Sie iotstartup list ausführen. Wenn der Listeneintrag iotstartup für die Anwendung IoTCoreDefaultApp_1w720vyc4ccym! App, dann ist der Paketfamilienname IoTCoreDefaultApp_1w720vyc4ccym

Verwenden CheckNetIsolation.exe LoopbackExempt -a -n=<AppContainer or Package Family>Sie zum Aktivieren des Loopbacks für Clientverbindungen . CheckNetIsolation.exe konfiguriert das Loopback für die Anwendung und beendet das Beenden. Dadurch kann die Anwendung ausgehende Verbindungen mit einem Server herstellen.

Beispiel: CheckNetIsolation.exe LoopbackExempt -a -n=IoTCoreDefaultApp_1w720vyc4ccym

Verwenden CheckNetIsolation.exe LoopbackExempt -is -n=<AppContainer or Package Family>Sie , um eine Serveranwendung für den Empfang eingehender Verbindungen zu aktivieren. Im Gegensatz zur Konfiguration ausgehender Verbindungen müssen eingehende Verbindungen CheckNetIsolation.exe kontinuierlich ausgeführt werden, während die Serveranwendung Verbindungen empfängt.  Dies erfordert einen Betriebssystembuild, der neuer als 10.0.14393 ist.

Beispiel: CheckNetIsolation.exe LoopbackExempt -is -n=IoTCoreDefaultApp_1w720vyc4ccym

Die beste Möglichkeit, CheckNetIsolation.exe beim Start automatisch auszuführen, besteht darin, schtasks.exe zu verwenden: schtasks /create /tn MyTask /f /sc onstart /ru system /tr "checknetisolation LoopbackExempt -is -n=IoTCoreDefaultApp_1w720vyc4ccym"

Beim Neustart sollten Sie überprüfen können, ob checknetisolation.exe ausgeführt wird, indem Sie tlist.exe oder das Windows-Geräteportal verwenden.