【问题标题】:Passing parameters in windows service在windows服务中传递参数
【发布时间】:2010-08-18 13:19:38
【问题描述】:

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

我还需要设置此服务的运行日期和时间。此日期和时间将根据客户需要更改。再次从 aspx 页面提供日期和时间。

【问题讨论】:

  • 好的,您正在创建此服务...您的问题是什么?
  • 听起来计划任务可能更合适?
  • 我需要知道如何将数据从 aspx 页面传递到 windows 服务

标签: c# asp.net windows-services


【解决方案1】:

这个问题有点宽泛,这意味着很难用代码示例给出一个很好的例子,除非你更具体地说明你已经弄清楚了什么,以及你需要帮助什么。基于此,我猜你不确定从哪里开始。

两种可能:

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

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

【讨论】:

    【解决方案2】:
    【解决方案3】:

    与任何其他可执行文件一样,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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        如果您将服务编写为持续运行,则可以使用 FileSystemWatcher 查找 aspx 页面可以生成的 xml 文件(可能不是最安全的,因为这意味着会有一个目录可以使用网络写入页)。

        【讨论】:

          【解决方案6】:

          在您的服务中放置一个 WPF 端点?

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-03-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-08-06
            相关资源
            最近更新 更多