次の方法で共有


localhost との通信 (ループバック)

Windows IoT Core では、同じデバイスで実行されている 2 つのプロセス間に TCP/IP 接続を作成する場合で、かつそのうちの 1 つが UWP アプリである場合は、localhost ループバックを有効にする必要があります。

ループバックとデバッガー

既定で、Visual Studio のデバッガーで実行すると、自動的にそのデバッグ セッションでのみ送信ループバックが有効になります。  スタートアップ プロジェクトのデバッガー設定でループバック チェックボックスがオンになっている限り、何もする必要はありません。  ソケット リスナーを実装する場合は、受信接続に対して localhost ループバックを有効にする必要があります (下記参照)。

受信ループバック ポリシーの有効化

サーバーを実装する UWP アプリに対して Windows IoT Core の localhost 受信ループバック ポリシーを有効にする必要があります。 このポリシーは、次のレジストリ キーによって制御されます。

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

有効にするには、この IoTInboundLoopbackPolicy レジストリ値を dword:00000001 に設定する必要があります。 IoTInboundLoopbackPolicy レジストリ値を変更した場合は、変更を有効にするために再起動する必要があります。  localhost ループバック ポリシーは、Windows IoT Core で既定で有効になります。

値が設定されていることを確認するには、Windows IoT Core デバイスで次のコマンドを実行します。

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

ポリシーを有効にするには、Windows IoT Core デバイスで次のコマンドを実行します。

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

UWP アプリケーションのループバックの有効化

アプリケーションのループバックを有効にする前に、パッケージ ファミリ名が必要です。 インストールされているアプリケーションのパッケージ ファミリ名は、iotstartup list を実行することで確認できます。 アプリケーションの iotstartup list エントリが IoTCoreDefaultApp_1w720vyc4ccym!App の場合、パッケージ ファミリ名は IoTCoreDefaultApp_1w720vyc4ccym です。

クライアント接続のループバックを有効にするには、CheckNetIsolation.exe LoopbackExempt -a -n=<AppContainer or Package Family> を使用します。 CheckNetIsolation.exe は、アプリケーションのループバックを構成して終了します。 これにより、アプリケーションはサーバーへの送信接続を実行できます。

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

サーバー アプリケーションが受信接続を受信できるようにするには、CheckNetIsolation.exe LoopbackExempt -is -n=<AppContainer or Package Family> を使用します。 送信接続の構成とは異なり、受信接続では、サーバー アプリケーションで接続が受信されている間、CheckNetIsolation.exe が継続して実行されている必要があります。  これには、10.0.14393 より新しい OS ビルドが必要です。

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

起動時に CheckNetIsolation.exe を自動的に実行する最善の方法は、schtasks.exe を使用することです: schtasks /create /tn MyTask /f /sc onstart /ru system /tr "checknetisolation LoopbackExempt -is -n=IoTCoreDefaultApp_1w720vyc4ccym"

再起動したら、tlist.exe または Windows Device Portal を使用することで、checknetisolation.exe が実行されていることを確認できます。