J'ai une application serveur qui EXEC une autre application, cette deuxième application construit un fichier journal, et je veux que le serveur l'envoie à un client via WCF.streaming un fichier pendant qu'il est écrit dans WCF
Je souhaite que le client lise le journal pendant que l'application EXEC le met à jour.
J'ai utilisé un contrat d'opération qui renvoie un flux (le fichier journal). le problème est que lorsque j'envoie le flux, le journal est toujours vide, et le client ne voit pas la "mise à jour" que le serveur EXEC écrit.
ici est le code du serveur:
public Stream GetLog()
{
Stream stream = new FileStream(@"Log.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
return stream;
}
l'EXEC du serveur est en train d'écrire simplement le fichier "Log.txt"
est ici le code client:
public void SaveLog()
{
Stream stream = ServerProxy.GetLog();
StreamWriter writer = new StreamWriter("NEWLog.txt");
writer.AutoFlush = true;
StreamReader reader = new StreamReader(stream);
char[] buf = new char[100];
int count = 0;
while (count = reader.ReadBlock(buf, 0, 100) > 0)
{
writer.Write(buf, 0, count);
}
stream.Close();
writer.Close();
}
comment puis-je mettre à jour le client avec le journal en temps réel?
Comment êtes-vous la lecture du fichier journal dans le client? Vous montrez seulement comment vous l'ouvrez. –
J'ai un lecteur de flux .. son écrit dans le code client .. – IsraelKo
Il serait utile si vous avez inclus votre code que ce commentaire n'aide pas à expliquer plus clairement pourquoi votre logique ne fonctionne pas. –