将win32应用程序作为服务公开给UWP应用程序

时间:2017-01-10 15:24:23

标签: c# uwp

我有一个win32(非uwp)C#应用程序,我想向UWP应用程序公开(两个进程在同一台机器上运行)。我希望将win32应用程序作为服务公开,并进行双向通信。

我尝试使用here中的示例,但我有两个问题:

  1. 我在win32应用程序中收到ServiceClosed通知(也在示例中出现)。

  2. 我必须在我的服务中硬编码一个字符串(AppServiceConnection中的PackageFamilyName),每个客户端(我假设我需要一个反向示例,其中win32应用程序提供服务,而不是客户端)。

  3. 我还尝试向this sample添加UWP应用服务。无法让它发挥作用。

    还有另一种方法来实现我的目标吗?

    要求:

    1. UWP客户端应注册来自win32的事件 应用

    2. 事件应从win32应用程序中以高速率发出(每秒30-60次)。

    3. UWP c ++客户端应该能够使用win32应用程序公开的服务(我认为这会否定SignalR作为解决方案)。

    4. 无法将win32应用程序转换为UWP应用程序。

    5. 编辑:

      我使用的是Windows 10企业版,1607版,操作系统版本14393.577和VS2015版本14.0.25431.01更新版。

      AppService Bridge Sample中的repro步骤:

      在program.cs中,在此行下方:

      connection.RequestReceived += Connection_RequestReceived;
      

      添加以下行:

      connection.ServiceClosed += (sender, args) => Console.WriteLine("ServiceClosed!");
      

      按开始,键入" Desktop Bridge AppService示例"并运行它。在VS2015中开始调试BackgroundProcess(不要从UWP应用程序启动BackgroundProcess)。

      等待约10秒,直到" ServiceClosed!"出现。

      请注意,在断开连接之后,UWP应用程序仍然可以向win32应用程序发送消息,但是如果您在win32应用程序中添加代码以将消息发送回UWP应用程序,则它们将不会成功发送。

0 个答案:

没有答案