Я пишу приложение, которое контролирует загрузку клиента, мне нужно знать, когда загрузка прошла успешно, но мне нужно сделать это на стороне сервера, но я не нахожу что-то подобное.
Это мой код сервера:
public GetCoverResponse GetCover(GetCoverRequest request)
{
return new GetCoverResponse()
{
Cover = downloadsManagementService.GetCover(request.IssueId)
};
}
[MessageContract]
public class GetCoverResponse: IDisposable
{
[MessageBodyMember(Order=1)]
public Stream Cover;
public void Dispose()
{
if (Cover != null)
{
Cover.Close();
Cover = null;
}
}
}
GetCover возвращает поток.Я использую эту конфигурацию:
<basicHttpBinding>
<binding name="StreamedBindingConfiguration" messageEncoding="Mtom" maxBufferSize="65536"
transferMode="Streamed">
</binding>
</basicHttpBinding>
Код клиента:
static void Main(string[] args)
{
var client = new DownloadsService.DownloadsServiceClient();
var data = client.GetCover(1);
FileStream f = new FileStream(@"D:\copiaDDDDDDD.txt", FileMode.OpenOrCreate);
Copy(data, f);
f.Close();
data.Close();
client.Close();
}
public static void Copy(Stream source, Stream target)
{
byte[] buffer = new byte[65536];
int bytes;
try
{
while ((bytes = source.Read(buffer, 0, buffer.Length)) > 0)
{
target.Write(buffer, 0, bytes);
}
}
finally
{
target.Flush();
}
}
Мне нужно знать, когда загрузка клиента прошла успешно, без повторного вызова службы.