C# 使用Windows服务在Windows 10上设计UWP应用程序

C# 使用Windows服务在Windows 10上设计UWP应用程序,c#,win-universal-app,kestrel-http-server,C#,Win Universal App,Kestrel Http Server,我们正在为Windows 10和Windows Mobile设备构建一个辅助UWP应用程序。在Windows 10上,我们希望为用户提供某种安全强制措施,例如确保其防病毒软件是最新的,等等。这应该通过具有管理员权限的Powershell完成 问题:从架构和用户体验的角度来看,这里的最佳方法是什么 想法1: 体系结构:UWP应用程序与服务(编写为.NET Core web.api并提供简单的REST接口)通信,并通过http客户端使用该服务 服务作为本地系统运行。我们希望将其托管在Kestrel

我们正在为Windows 10和Windows Mobile设备构建一个辅助UWP应用程序。在Windows 10上,我们希望为用户提供某种安全强制措施,例如确保其防病毒软件是最新的,等等。这应该通过具有管理员权限的Powershell完成

问题:从架构和用户体验的角度来看,这里的最佳方法是什么

想法1: 体系结构:UWP应用程序与服务(编写为.NET Core web.api并提供简单的REST接口)通信,并通过http客户端使用该服务

服务作为本地系统运行。我们希望将其托管在Kestrel webservice中,因为这在针对.net 4.6时是受支持的。原型工作到目前为止,但一切都在调试模式下运行&不确定UWP应用程序的隔离是否会出现一些问题

在我看来,UWP应用程序是通过正常的http请求使用服务的,不应该以任何方式隔离或拦截这些请求,对吗?从UWP隔离的角度来看,使用本地托管的webapi与使用云api没有区别,对吗

想法2: 用户体验:用户从公共商店下载应用程序。应用程序会检查它是否在Windows 10上运行,如果是,它会检查是否已经安装了helper Windows服务(通过Web服务上的API调用)。如果没有,它将为用户提供从网页下载并安装服务的能力(提示)


最好的方法是什么?只是给用户一个下载链接?或者我可以从UWP应用程序启动一个提示安装MSI的进程吗?它应该尽可能简单。

1)UWP应用程序无法以任何方式连接到本地主机。2) 您不能从UWP应用程序启动进程,您可以选择向用户提供下载链接。@MehrzadChehraz我认为您的第二个答案是正确的。但你能更清楚地回答第一个问题吗?我认为如果服务提供web.api REST接口,UWP应用程序可以与服务通信,对吗?在我的测试中有效,但不确定是否有其他限制,如提交到商店…如果服务在同一台机器上,无论它提供什么接口,都无法从UWP应用程序连接到它。它是经过设计的,并且是“网络隔离”的一部分,这是为了(他们说)更安全。嗯,但是为什么我可以在VisualStudio的开发过程中使用本地Web服务呢?现在就可以了。以后通过应用商店部署时会有什么不同?对不起,我不明白,因为原型对我有用。很难理解“隔离”是什么意思,因为我可以通过uwp应用程序中的一个简单http客户端连接到外部。当localhost不是一个有效的目标时,我看不到隔离的意义,但是internet是。可以提供一个示例来说明UWP应用程序在哪里无法通信?这没有意义,但如果您想将应用程序发布到应用商店中,则不允许这样做。如果在VisualStudio中设置了相关配置,它将在调试模式下工作。