我正在尝试找出按计划调用Web服务的最佳方法。我做研究的时间比我想承认的要长,只需要考虑最好的方法,以及如何开始。
我有一个asmx Web服务,我需要每天早上在特定时间调用我的应用程序中运行一些导入过程。我不需要传递任何内容,但我(不一定)需要从Web服务中获取任何结果。
我在互联网上发现的很多东西都是旧技术,我在.NET 4.0 / 4.5应用程序中实现任何一项都遇到了问题。我完全迷失了,只需要一些方向来确保我不会完全错误。我一直使用网络应用程序,从未对Windows服务或类似的任何事情做过任何事情。
我正在调查Windows服务,但没有运气。在我通过他们的方式之前,我想确保我甚至朝着正确的方向前进。我需要做的就是从Windows应用程序/服务/等中按计划调用此Web服务。
思想?
编辑**
好的,暂时我决定使用控制台应用程序并让一个人打电话给Web服务。我知道我最初说我不关心将参数传递给Web服务,但现在我已经确定这将是一个很好的补充。
这就是我现在所拥有的,但我无法弄清楚如何为我的生活传递参数。
Dim sSource As String
Dim sLog As String
Dim sEvent As String
sSource = "Import Project Information"
sLog = "Application"
sEvent = "Import Started"
If Not EventLog.SourceExists(sSource) Then
EventLog.CreateEventSource(sSource, sLog)
End If
EventLog.WriteEntry(sSource, sEvent, EventLogEntryType.Information, 0)
Dim WebService As New Web_Service.ImportProjectInfo
Dim results As Boolean = WebService.Import()
Console.WriteLine(results)
If results = True Then
sEvent = "Import Successful"
EventLog.WriteEntry(sSource, sEvent, EventLogEntryType.SuccessAudit, 1)
Else
sEvent = "Import Failed"
EventLog.WriteEntry(sSource, sEvent, EventLogEntryType.FailureAudit, 999)
End If
答案 0 :(得分:1)
尝试使用Windows任务计划程序,它有许多很多选项用于计划,即系统启动,在预定时间等。
答案 1 :(得分:1)
这很容易让我们疯狂!!!!!
在找到传递这些参数的方法之前,我不想更改我的Web服务以添加参数。我没有意识到我写的代码知道我在Web服务中没有这些参数。一旦我将它们添加到Web服务中,我就能毫无困难地通过......
Ashish Gupta在我终于意识到这一点后不久就在其中一条评论中提到了这一点。我很尴尬地承认这一点,因为这一个问题给我带来了很多麻烦......并且工作。
基本上,在更新Web引用后执行此操作。
Dim results As Boolean = WebService.Import("something to pass", "something else")
回到我原来的问题,我也最终切换到Windows服务,一旦我解决了所有问题,我很高兴。在我看来,它是最安全的选项,具有最简单的设置/可移植性。