【发布时间】:2009-03-26 21:27:42
【问题描述】:
我正在使用 .Net 2.0 框架并想从 Web 服务调用 Windows 服务中的函数。这可能吗?如果是的话,我将对函数有多少控制权,即传递参数、取回结果等。任何想法将不胜感激:)
【问题讨论】:
-
请澄清问题。您是否控制服务。这些是现有的服务吗?还是你要写?
标签: windows-services web-services
我正在使用 .Net 2.0 框架并想从 Web 服务调用 Windows 服务中的函数。这可能吗?如果是的话,我将对函数有多少控制权,即传递参数、取回结果等。任何想法将不胜感激:)
【问题讨论】:
标签: windows-services web-services
如果您需要传递参数值,Remoting 是您的最佳选择。
如果您不需要共享对象或任何太复杂的东西,ServiceController 可能更容易。
【讨论】:
您可以通过 .NET 远程处理来实现。如果你走那条路,看起来你正在调用一个方法并得到一个结果,但是你的所有参数都将通过网络进行序列化,结果将被序列化回来。因此,所有内容都必须可序列化。
【讨论】:
如何在 Windows 服务中托管 WCF 服务。您可以使用 net.tcp 或命名管道在“您的”Web 服务和 Windows 服务中的服务之间进行通信。您可以使用 NetDataContractSerializer 进行类型保真的序列化。
【讨论】:
您可以实现一个将某些请求映射到函数的基本 http 服务器。查询字符串将映射到参数。实际上并不难,我过去也这样做过(因为我提供了一些基本的基于模板的报告)。它不是动态的,但可以动态完成。以 HttpListener 为起点。您也可以在其中托管 asp.net 引擎。
它有它的优点和缺点。
【讨论】:
为什么不将函数打包到自己的DLL中,然后与Windows Service和Web Service分开分发呢?
【讨论】:
创建导出接口COM或使用PIPE传输数据的服务项目。 查看此Interprocess Communication using Named Pipes in C#
【讨论】: