Я отправляю большие файлы через WCF, и я использую TransferMode = "Streamed", чтобы заставить это работать, и оно работает нормально.
Дело в том, что иногда эти файлы просто слишком великии я хочу дать клиенту своего рода отзыв о прогрессе.
У кого-нибудь есть хорошее решение / идея о том, как этого добиться?
РЕДАКТИРОВАТЬ: я не приказываю чтение файла с любой стороны (клиента или сервера), если я сделал ямог просто дать отзыв о функции чтения потока.
EDIT2: часть моего кода, чтобы помочь другим понять мою проблему
Вот мой контракт
[OperationContract]
FileTransfer Update(FileTransfer request);
и вот определение FileTransfer
[System.ServiceModel.MessageContractAttribute(WrapperName = "FileTransfer", WrapperNamespace = "http://tempuri.org/", IsWrapped = true)]
public class FileTransfer : IDisposable
{
[System.ServiceModel.MessageBodyMemberAttribute(Namespace = "dummy", Order = 0)]
public Stream FileByteStream;
public void Dispose()
{
if (FileByteStream != null)
{
FileByteStream.Close();
FileByteStream = null;
}
}
}
Итак, в моем сервисе (размещенном на IIS) у меня просто что-то вроде этого:
request.FileByteStream;
и WCF сам читает поток, верно?
Надеюсь, это поможет людям понятьмоя проблема ... пожалуйста, дайте мне знать, если вам нужна дополнительная информация