从控制台应用程序调用Web服务传递参数

时间:2012-10-02 15:26:57

标签: web-services windows-services console-application

我正在尝试找出按计划调用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

2 个答案:

答案 0 :(得分:1)

尝试使用Windows任务计划程序,它有许多很多选项用于计划,即系统启动,在预定时间等。

答案 1 :(得分:1)

这很容易让我们疯狂!!!!!

在找到传递这些参数的方法之前,我不想更改我的Web服务以添加参数。我没有意识到我写的代码知道我在Web服务中没有这些参数。一旦我将它们添加到Web服务中,我就能毫无困难地通过......

Ashish Gupta在我终于意识到这一点后不久就在其中一条评论中提到了这一点。我很尴尬地承认这一点,因为这一个问题给我带来了很多麻烦......并且工作。

基本上,在更新Web引用后执行此操作。

Dim results As Boolean = WebService.Import("something to pass", "something else")

回到我原来的问题,我也最终切换到Windows服务,一旦我解决了所有问题,我很高兴。在我看来,它是最安全的选项,具有最简单的设置/可移植性。