【问题标题】:ASP.NET : How do I fetch data from a webserver every few minutesASP.NET:如何每隔几分钟从网络服务器获取数据
【发布时间】:2011-01-21 04:47:15
【问题描述】:

我需要每隔几分钟从网络服务器获取 CSV 文件。

这是我打算做的事情: 我将创建一个网络服务“GetCSV.asmx”,它将从该网络服务器获取 CSV 文件。

我将创建另一个网络服务“RegularCall.asmx”,它会每隔几分钟调用一次“GetCSV.asmx”。

我的方法正确吗?有更好的方法吗?

我为此使用 ASP.NET Web 应用程序和 JSON Web 服务。

注意:不会有用户干预,我正在寻找的解决方案类似于在服务器上安排任务...您能建议一个解决方案吗?

【问题讨论】:

    标签: c# .net asp.net asp.net-mvc web-services


    【解决方案1】:

    如果您可以通过客户端调用执行此操作,请使用 jQuery $.ajaxjavascript setTimer 拉开间隔。设置 ajax 调用以加载 Web 服务。

    【讨论】:

    • 使用 $.getJSON 代替 $.ajax,因为提问者提到他正在使用 JSON 服务。
    • 我需要这个网络服务在没有任何用户干预的情况下自动运行。在那种情况下,jQuery $.ajax 或 json 会起作用吗?
    • 你的意思是当用户在你的 url 打开一个活动的浏览器窗口时,它需要在没有干预的情况下工作?如果是这样,$.ajax 或 $.getJson 都可以。我坚持使用 $.ajax,因为它具有最大的灵活性。如果没有活动的用户连接,那么也许您的意思是使用托管服务提供商的计划任务? (或者也许我只是感到困惑......这完全有可能。;D)
    • @Chad,我正在寻找类似于计划任务的东西。你能告诉我jQuery $.ajax / json 在这种情况下是否可以工作吗?如果没有,还有什么更好的选择?
    • 一旦部署在服务器上,webservice 将处于一种无限循环中,每隔几分钟就会获取 csv 文件。
    【解决方案2】:

    您应该知道您不需要创建不同的 asmx 文件。您可以创建一个并访问其中的各个方法。

    【讨论】:

      【解决方案3】:

      Chad 是对的,这是您可以拨打ASMX WebService from JQuery 的一种方式。你只需要使用,

      <script language="JavaScript">
           setInterval( "CallWebServiceFromJquery()", 300000 );  
      </script>
      
      instead of 
      
      OnClientClick="CallWebServiceFromJquery()"
      

      注意:300000 毫秒 = 5 分钟

      希望对你有帮助。

      【讨论】:

      • 我需要这个网络服务在没有任何用户干预的情况下自动运行。在那种情况下,jQuery $.ajax 或 json 会起作用吗?
      • @meetpd 发出警报而不是 $.ajax 和 1000 毫秒,你会看到会发生什么
      猜你喜欢
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-10
      相关资源
      最近更新 更多