0

我有一个内置在 LightSwitch 中的小型桌面应用程序,它允许远程销售人员在他们的笔记本电脑上本地记录和处理客户数据,因为客户站点并不总是具有 Internet/VPN 访问权限。因此,每个客户端应用程序都有本地安装的 SQL 2012 Express。

在命令栏中,我有一个标记为“数据库备份”的按钮,用于在他们回到办公室时将他们的 .mdf 文件从他们的机器复制到映射的网络驱动器。在当前未附加到 SQL 实例的测试 .mdf 文件上工作正常。现在的问题是,当尝试在生产中复制该 .mdf 文件(运行 SQL)时,它无法复制,因为它在 SQL Express 中打开。

我的问题是:是否可以向客户端添加允许我使用 System.ServiceProcess.ServiceController 类的引用?或者最好使用什么程序集,以便我可以停止然后重新启动 Windows 服务?(停止服务 => 复制 mdf 文件 => 重启服务)

4

1 回答 1

0

首先,我想确保我了解您的拓扑。我假设您的应用程序配置为 Silverlight 桌面应用程序,该应用程序部署为 2 层环境,其中应用程序和数据库托管在同一台计算机上。

在这种情况下,您应该能够为您的应用程序编写代码,以便它可以调用 ServiceController 类。您不能从“客户端”代码中执行此操作,因为那是 Silverlight 并且无权访问 ServiceController。相反,您需要将其写入“服务器”代码中,该代码作为主机进程在同一台机器上运行,并且可以访问完整的 .NET 框架。您可以通过 Web API 公开您的自定义服务器代码,当用户单击按钮时,您的客户端代码可以调用该 Web API。这是一篇解释这种模式的好文章:http ://blog.pragmaswitch.com/?p=765 。

于 2014-06-19T13:25:23.117 回答