1

我可以在 Windows 服务中有一个函数并将数据返回到 vb.net 应用程序吗?

这是我在 Windows 服务中的示例代码:

 Protected Overrides Sub OnStart(ByVal args() As String)
        ' Add code here to start your service. This method should set things
        ' in motion so your service can do its work.
        EventLog1.WriteEntry("In OnStart")
    End Sub

    Protected Overrides Sub OnStop()
        ' Add code here to perform any tear-down necessary to stop your service.
        EventLog1.WriteEntry("In OnStop.")
    End Sub
    Protected Overrides Sub OnContinue()
        EventLog1.WriteEntry("In OnContinue.")
    End Sub
    Protected Overrides Sub OnCustomCommand(ByVal command As Integer)
        Dim mymsg As String
        Dim servicestorun As New System.ServiceProcess.ServiceBase
        If (command < 128) Then
            MyBase.OnCustomCommand(command)
        Else
            Select Case command
                Case 129
                    mymsg = "i want this msg to my vb.net application"
                Case Else
            End Select
        End If

    End Sub

这是我的 vb.net 应用程序代码:

Dim myServiceController As New System.ServiceProcess.ServiceController("MyNewService")

        Dim status As String
        Try
            myServiceController.ExecuteCommand(129)
 ' i want to get the msg from my windows service "i want this msg to my vb.net application"
            status = "Custom Command Executed Successfully!"
        Catch ex As Exception
            status = "Failed To Execute Custom Command! " & ex.Message
        End Try

请需要帮助。

4

1 回答 1

1

您可以将 Windows 服务用作 WCF 主机。参见例如http://msdn.microsoft.com/en-us/library/ms733069.aspx

对于同一台机器上的通信,我会推荐命名管道(NetNamedPipeBinding)。您甚至可以在不使用 WCF 的情况下使用命名管道 (http://stackoverflow.com/questions/4303154/)

于 2012-08-31T11:49:51.617 回答