我有一个win32(非uwp)C#应用程序,我想向UWP应用程序公开(两个进程在同一台机器上运行)。我希望将win32应用程序作为服务公开,并进行双向通信。
我尝试使用here中的示例,但我有两个问题:
我在win32应用程序中收到ServiceClosed通知(也在示例中出现)。
我必须在我的服务中硬编码一个字符串(AppServiceConnection中的PackageFamilyName),每个客户端(我假设我需要一个反向示例,其中win32应用程序提供服务,而不是客户端)。
我还尝试向this sample添加UWP应用服务。无法让它发挥作用。
还有另一种方法来实现我的目标吗?
要求:
UWP客户端应注册来自win32的事件 应用
事件应从win32应用程序中以高速率发出(每秒30-60次)。
UWP c ++客户端应该能够使用win32应用程序公开的服务(我认为这会否定SignalR作为解决方案)。
无法将win32应用程序转换为UWP应用程序。
编辑:
我使用的是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应用程序,则它们将不会成功发送。