我正在开发一款适用于 Windows 8 的产品,该产品需要执行一些低级任务、显示一些 UI 并与外部服务器通信。我绝对需要一个 Windows 服务来完成低级任务。同时,我想为 UI 使用 Windows App Store 应用程序的酷炫功能,如推送通知、动态磁贴等。在这个设计中,我的服务和我的应用程序都将与我的外部服务器进行通信。
流程类似于:我的 Windows 服务向我的服务器发送一些信息,然后服务器向我的 App Store 应用程序发送推送通知。
我知道在这种情况下部署并不好,但现在让我们把它放在一边。我的问题:服务器如何知道服务和应用程序在同一台机器上,并因此链接在一起?即当我的 Windows 服务向服务器发送信息时,服务器如何知道将推送通知发送到何处?我需要某种共享的、唯一的、识别信息。
我看到很多关于 App Store 应用程序和桌面应用程序之间缺乏进程间通信的讨论(通常本质上令人沮丧)。就我而言,我有两个选择:
在服务和应用程序中生成完全相同的唯一标识符。这似乎不太可能,因为应用程序似乎无法访问很多特定于系统的信息。我很想被证明我错了。
在服务器或应用程序中生成唯一标识符并将其传递给其他组件。执行此操作的潜在方法:
- 在应用程序中创建标识符,将其保存到文件中,然后从服务中访问该文件。
- 某种本地套接字解决方案(我读过这不起作用,但没有尝试过)
当然,选项 2 似乎可能违反 Windows 8 应用程序认证要求,特别是:
Windows 应用商店应用不得通过本地机制(包括文件和注册表项)与本地桌面应用程序或服务进行通信。
任何建议将不胜感激。