首页 > 解决方案 > WPF 应用程序未在 Windows Server 2016 的信号器集线器中连接

问题描述

当我在windows server 2016 标准中运行 exe并且在我的开发机器和另一台机器上运行相同的 exe时,我无法连接信号器集线器

我的代码 公共事件消息作为操作(BSLMessage)

Private g_Application_Path As String = System.AppDomain.CurrentDomain.BaseDirectory


Private connection As HubConnection
Private serverURI As String = "http://test.azurewebsites.net/bsl"
'Private serverURI As String = "https://localhost:44301/bsl"


Public Async Sub Start()
    Try
        Await ConnectAsync()
    Catch ex As Exception

    End Try
End Sub
Public Async Sub Close()
    Try
        Await CloseAsync()
    Catch ex As Exception

    End Try
End Sub


Private Async Function ConnectAsync() As Task
    Try
        connection = New HubConnectionBuilder().WithUrl(serverURI).Build()
        'connection.HandshakeTimeout = TimeSpan.FromSeconds(30)
        'connection.ServerTimeout = TimeSpan.FromSeconds(30)


        Await connection.StartAsync

        If connection.State <> HubConnectionState.Connected Then
            WriteErrorLog("Azure Connection Failed: " & serverURI)
        End If

        AddHandler connection.Closed, AddressOf Connection_Closed
        AddHandler connection.Reconnected, AddressOf Connection_Reconnected

        connection.On(Of BSLMessage)("ReceiveBSLVideo", Sub(x) RaiseEvent Message(x))
    Catch ex As Exception
        WriteErrorLog(ex)
    End Try
End Function
Private Async Function CloseAsync() As Task
    Try
        Await connection.StopAsync
    Catch ex As Exception
    End Try
End Function

Private Function Connection_Reconnected(arg As String) As Task
End Function

Private Function Connection_Closed(arg As Exception) As Task
End Function




Private Sub WriteErrorLog(ByVal Message As Object)
    Try
        Dim outputMessage As New List(Of String)
        Select Case Message.GetType()
            Case GetType(String)
                outputMessage.Add(Message.ToString)
            Case Else
                Dim ex As Exception = Message
                Dim st As StackTrace = New StackTrace(ex, False)
                If st.FrameCount > 0 Then
                    Dim frame As StackFrame = st.GetFrame(1)
                    Dim ownerType As Type = frame.GetMethod().DeclaringType
                    outputMessage.Add("Error Rasied: " & frame.GetMethod().DeclaringType.FullName.ToString)
                End If

                While ex IsNot Nothing
                    outputMessage.Add(ex.Message.ToString)
                    outputMessage.Add(ex.StackTrace.ToString)
                    ex = ex.InnerException
                End While

                'Console.WriteLine()

        End Select
        Dim Filename As String = Now.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture) & "-FFMpegResizer-Error.log"
        Dim objWriter As New System.IO.StreamWriter(IO.Path.Combine(g_Application_Path, Filename), True)
        For Each s In outputMessage
            objWriter.WriteLine(Now & "," & s)
        Next
        objWriter.Close()
        objWriter = Nothing
    Catch ex As Exception
    End Try
End Sub

错误日志:

24/08/2021 11:18:12,引发错误:System.Runtime.CompilerServices.TaskAwaiter 24/08/2021 11:18:12,服务器在握手开始之前断开连接。

2021 年 8 月 24 日 11:18:12,在 Microsoft.AspNetCore.SignalR.Client.HubConnection.d__80.MoveNext() --- 从先前引发异常的位置结束堆栈跟踪---在 System.Runtime.CompilerServices .TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.SignalR.Client.HubConnection.d__58.MoveNext() --- 堆栈跟踪从先前位置结束异常被抛出 --- 在 Microsoft.AspNetCore.SignalR.Client.HubConnection.d__58.MoveNext() --- 从之前抛出异常的位置结束堆栈跟踪--- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task任务)在 Microsoft.AspNetCore.SignalR.Client 的 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)。HubConnection.d__50.MoveNext() --- 从先前引发异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task任务)在 Microsoft.AspNetCore.SignalR.Client.HubConnection.d__49.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪---在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at SignalRTestApp.DPMMessenger.VB$StateMachine_10_ConnectAsync.MoveNext() in DPMMessenger.vb:line 38MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Microsoft .AspNetCore.SignalR.Client.HubConnection.d__49.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪---在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime。 CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at SignalRTestApp.DPMMessenger.VB$StateMachine_10_ConnectAsync.MoveNext() in DPMMessenger.vb:line 38MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 在 Microsoft .AspNetCore.SignalR.Client.HubConnection.d__49.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪---在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在 System.Runtime。 CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at SignalRTestApp.DPMMessenger.VB$StateMachine_10_ConnectAsync.MoveNext() in DPMMessenger.vb:line 38Microsoft.AspNetCore.SignalR.Client.HubConnection.d__49.MoveNext() 处的 CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- 在 System.Runtime.CompilerServices.TaskAwaiter 上一个抛出异常的位置结束堆栈跟踪.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at SignalRTestApp.DPMMessenger.VB$StateMachine_10_ConnectAsync.MoveNext() in DPMMessenger.vb:line 38Microsoft.AspNetCore.SignalR.Client.HubConnection.d__49.MoveNext() 处的 CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- 在 System.Runtime.CompilerServices.TaskAwaiter 上一个抛出异常的位置结束堆栈跟踪.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at SignalRTestApp.DPMMessenger.VB$StateMachine_10_ConnectAsync.MoveNext() in DPMMessenger.vb:line 38Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at SignalRTestApp.DPMMessenger.VB$StateMachine_10_ConnectAsync.MoveNext() in DPMMessenger.vb:line 38Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at SignalRTestApp.DPMMessenger.VB$StateMachine_10_ConnectAsync.MoveNext() in DPMMessenger.vb:line 38

标签: wpfsignalr-hub

解决方案


推荐阅读