C# - Wie liest man einen Stream in einen WCF-Dienst
Ich habe einen WCF-service, wo ich würde gerne eine log Datei und Prozess auf dem server.
Der Vertrag:
[OperationContract]
void LogFile(Stream file);
Und Im mit StreamedRequest im Endpunkt.
Das problem, das ich habe, ist, dass ich kann nicht finden, einen Weg, um Lesen Sie den stream in den Dienst.
Wenn ich die debug-Aufruf, sehe ich, dass der Stream ist eine Instanz von:
System.ServiceModel.Dispatcher.StreamFormatter.MessageBodyStream
Vom client aus Sofortnachrichten senden ein MemoryStream.
So... Wie kann ich Lesen Sie den stream???
Dank.
Edit1:
im Einsatz:
Stream serviceStream = new MemoryStream();
byte[] buffer = new byte[10000];
int bytesRead = 0;
do
{
bytesRead = file.Read(buffer, 0, buffer.Length);
serviceStream.Write(buffer, 0, bytesRead);
} while (bytesRead > 0);
serviceStream.Position = 0;
Lesen stream, nichts geht raus, immer 0
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mein bad, in dem client habe ich vergessen zum einstellen der position des Streams auf 0 gesetzt, damit der service war immer der stream mit der position am Ende
Mach dir keine sorgen über den internen Typ der Streams, die Sie erhalten. Lesen Sie einfach die Streams, wie Sie es normalerweise tun würde (z.B. mit StreamReader) und alles sollte gut sein. Beachten Sie, dass Sie brauchen nicht zu rufen
Dispose
oderClose
auf der Bach auf beiden Seiten, WCF umzugehen.