У меня странная ошибка.
Я получаю данные через веб-сервер, соответственно - я запускаю веб-сервер и получаю данные через параметр post из внешнего компонента.
Сообщения содержат изображения в кодировке base64.
Без изображений все работает как положено - однако с изображениями примерно в 30% всех сеансов массажа я получаю ошибку.
![enter image description here](https://i.stack.imgur.com/Aot1R.png)
Ошибка чтения потока. В основном это говорит о недопустимой функции.
Это вся функция:
Public Sub MyCollectFromTriggerInterface()
Main.MessageObj.MyMessage("DLVPDataCollector: ", "Start thread for DLVP collection. (Trigger Interface)", 3)
Main.LogObj.MsgLog("ClassDLVPDataCollector", "MyCollectFromTriggerInterface", "Start thread for DLVP collection. (Trigger Interface)")
'Falls das Betriebssytem den Server nicht
If Not System.Net.HttpListener.IsSupported Then
Main.MessageObj.MyMessage("DLVPDataCollector: ", "!!! Windows XP SP2, Server 2003, or higher is required to use the HttpListener class !!!", 3)
Main.LogObj.ErrLog("ClassDLVPDataCollector", "MyCollectFromTriggerInterface", "Windows XP SP2, Server 2003, or higher is required to use the HttpListener class.")
Exit Sub
End If
'Den Listener starten.
Dim listener As System.Net.HttpListener = New System.Net.HttpListener()
Dim adr As String = Main.LoadSettingsObj.Settings_DlvpDatacollector_HTTPServerAddress_TriggerInterface
listener.Prefixes.Add(adr)
listener.Start()
Main.MessageObj.MyMessage("DLVPDataCollector: ", "Listener started. (Trigger Interface)", 3)
Main.LogObj.MsgLog("ClassDLVPDataCollector", "MyCollectFromTriggerInterface", "Listener started. (Trigger Interface)")
While True
'Wenn die Applikation beendet werden soll.
If Main.EndApplication = True Then
Main.MessageObj.MyMessage("DLVPDataCollector: ", "Stop thread for DLVP collection. (Trigger Interface)", 3)
Main.LogObj.MsgLog("ClassDLVPDataCollector", "MyCollectFromTriggerInterface", "Stop thread for DLVP collection. (Trigger Interface)")
Exit While
End If
'Auslesen, was der Client gesendet hat.
Dim response As HttpListenerResponse = Nothing
Dim context As HttpListenerContext = listener.GetContext()
Dim PostParameter = New StreamReader(context.Request.InputStream).ReadToEnd()
'Neuen Thread starten.
Dim obj As New ArgumentsTo_MyDoWorkflowTI
obj.Data = PostParameter
Dim t As New Threading.Thread(AddressOf MyDoWorkflowTI)
t.IsBackground = True
t.Start(obj)
'Antwort an den Client senden.
Dim b As Byte() = Encoding.UTF8.GetBytes("ACK")
context.Response.StatusCode = 200
context.Response.KeepAlive = False
context.Response.ContentLength64 = b.Length
Dim output = context.Response.OutputStream
output.Write(b, 0, b.Length)
context.Response.Close()
End While
End Sub
Я думаю, это как-то связано с длиной сообщения, проблемой тайм-аута или чем-то еще ...
У кого-нибудь есть идеи?
Интерфейс получает данные до 4 раз в секунду.
Kr
Andreas
Это детали исключения:
![enter image description here](https://i.stack.imgur.com/IYXaa.png)