在Windows服务中传递参数

时间:2010-08-18 13:19:39

标签: c# asp.net windows-services

我想开发一个Windows服务,它将接受来自aspx页面的数据表。 Windows服务和网站都托管在同一台机器上。

此外,我需要设置此服务的工作日期和时间。这个日期和时间是根据客户需求改变的。再一次,日期和时间将从aspx页面提供。

6 个答案:

答案 0 :(得分:3)

这个问题有点宽泛,这意味着很难用代码示例给出一个很好的例子,除非你对你已经想到的内容以及你需要帮助的内容有所了解。基于此,我猜你不知道从哪里开始。

两种可能性:

简单:让ASPX页面和服务器都指向同一个数据库。为了使aspx页面向服务发送数据,ASPX页面应该更新数据库;服务应该从中读取。只需将服务设置为定期轮询即可。您还可以在数据库中存储日期,并让ASPX页面更新日期。

更高级:使用WCF(Windows Communication Foundation)允许服务侦听来自ASPX页面的请求。 (例如谷歌WECF代码)。 即使使用WCF,也可以将DataSet作为参数传递给函数。

答案 1 :(得分:1)

与任何其他可执行文件一样,Windows服务具有带参数的Main方法,如果要在启动时将某些数据传递给服务,则可以使用该参数,例如,您可以将数据集转储到xml文件并传递该路径文件开始

 static void Main(string[] args)
 {
            // Do something with args array, but il make sure its not null first.
 }

但是如果你想在执行期间传递参数,你可以使用WCF Windows Service host

答案 2 :(得分:1)

答案 3 :(得分:0)

听起来服务应该一直在运行(每分钟,也许),当它运行时,它的所有逻辑都包含在一个条件中,该条件检查数据库以查看它是否“应该立即运行”。 “该网页将在数据库中维护该数据。

答案 4 :(得分:0)

如果您编写的服务经常运行,您可以使用FileSystemWatcher查找aspx页面可以生成的xml文件(可能不是最安全的,因为这意味着将有人可以使用Web写入的目录页)。

答案 5 :(得分:0)

将WPF端点放入您的服务中?