다른 응용 프로그램을 실행하는 서버 응용 프로그램이 있고 두 번째 응용 프로그램이 로그 파일 인 을 작성하고 서버가 WCF를 통해 클라이언트에 보내길 원합니다.WCF에서 쓰고있는 동안 파일 스트리밍
EXEC 앱이 업데이트하는 동안 클라이언트가 로그를 읽길 원합니다.
저는 스트림 (로그 파일)을 반환하는 작업 계약을 사용했습니다. 문제는 내가 처음 스트림을 보낼 때 로그가 여전히 비어 있습니다. 이고 클라이언트는 서버 EXEC가 작성하는 "업데이트"를 보지 못합니다.
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();
}
:
public Stream GetLog()
{
Stream stream = new FileStream(@"Log.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
return stream;
}
서버에서 EXEC 단순히 "Log.txt의"파일 여기
에 쓰기
클라이언트 코드는 : 여기
는 서버 코드 REAL-TIME에서 클라이언트를 어떻게 업데이트 할 수 있습니까?
어떻게 클라이언트의 로그 파일에서 읽고있는? 당신은 그것을 여는 방법을 보여줄뿐입니다. –
나는 스트림 리더를 가지고있다. 그것은 클라이언트 코드로 작성된 것이다. – IsraelKo
코드가 포함되어 있다면, 그 주석은 논리가 작동하지 않는 이유를 더 명확하게 설명하는 데 도움이되지 않을 것이다. –