0

我有一个 asp.net 应用程序,它必须调用一个客户端 Windows 服务,该服务将启动一个以前安装在客户端计算机中的 exe。我使用ServiceController类来管理服务:我使用 然后sc = new ServiceController("HippoTwain", Environment.MachineName); 调用服务,服务执行:sc.ExecuteCommand((int)HippoTwainMethods.Select);

ApplicationLoader.PROCESS_INFORMATION procInfo;
ApplicationLoader.StartProcessAndBypassUAC(@"C:\HippoCard\HTwain\HTwain.exe", out procInfo);

问题是:asp.net 正在调用服务器服务,但我需要从客户端计算机调用该服务。我该怎么做呢?

4

1 回答 1

0

如果要访问安装在客户端计算机上的服务,显然必须从客户端调用它。这意味着来自 Silverlight 控件或来自 javascript。

我的建议是让 Windows 服务在 localhost 上托管一个 Web 服务。在此 Web 服务中添加一个方法,该方法一旦调用就会启动您的流程。在您的页面上添加调用上述方法的 Silverlight 控件或对该方法进行 jquery.post() 调用。显然,您需要注意安全问题,但您明白了:您无法使用服务器端执行的代码访问客户端上的资源。

于 2013-09-16T15:08:06.183 回答