捆绑WCF服务以及通用Windows应用程序

时间:2015-12-25 06:39:45

标签: wcf windows-runtime uwp windows-10-universal

我意识到我们无法从UWP应用程序直接访问SQL Server数据库,并且必须使用WCF服务作为此调解器。 (这是完全愚蠢的,因为即使是像MySQL这样的竞争对手也会为微软的运行时提供API,而微软自己的RDBMS却没有!)

我没有任何WCF经验,但经过一些教程后,我相信我可以建立一个WCF服务来与我的SQL Server进行通信(尽管我不喜欢让我的简单应用程序使用3层架构,不应该强加给我)。无论如何,我不想在我的网站上托管这个WCF服务,因为我只为这个UWP应用程序做这个。有没有办法可以捆绑/打包此WCF服务以及UWP应用程序本身,这样服务只能在启动我的应用程序时在客户端计算机上运行,​​并在应用程序关闭/暂停/缩小时停止。

我正在开发的UWP应用程序,也有WPF版本和Web版本(在ASP.NET中),所有这些都连接到MySQL数据库,直到现在,它完美无瑕。最近我决定转移到SQL Server,因为我使用的是Microsoft技术用于我的所有软件和思想 SQL Server将有更好的集成和支持。但现在我发现它相反,并且想要切换回MySQL数据库。

1 个答案:

答案 0 :(得分:2)

您无法将WCF服务(或REST API)与通用Windows应用程序捆绑在一起。 UWP应用程序在与WCF服务不同的.NET运行时的沙箱环境中运行。您可以在IIS中运行WCF服务,甚至可以更好地创建自托管的ASP.NET WebAPI项目(因此不需要IIS)来访问您的数据库。但是,此服务必须从应用单独安装

请注意,由于UWP应用程序在沙箱中运行,因此一些应用程序内数据库(如SQLite)位于此沙箱中,默认情况下您的其他应用程序(WPF,网站)无法访问(有一些黑客可以绕过这个)。

所以我认为最好的办法是坚持使用MySQL并使用MySQL connector