我有一个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正在调用Server服务,但我需要从客户端计算机调用该服务。 我该怎么做?
答案 0 :(得分:0)
如果要访问客户端计算机上安装的服务,显然必须从客户端调用它。这意味着来自Silverlight控件或来自javascript。
我建议将Windows服务托管在localhost上作为Web服务。在此Web服务中添加一个曾经调用的方法来启动您的进程。 在您的页面上添加一个Silverlight控件,该控件调用上述方法或对该方法进行jquery.post()调用。显然你需要注意安全问题,但是你明白了:你不能使用服务器端执行的代码访问客户端的资源。