클라이언트 다운로드를 제어하는 응용 프로그램을 작성 중입니다. 다운로드가 성공했을 때 알 필요가 있지만 서버 측에서해야하지만 이렇게하는 것이 없습니다.WCF 다운로드 파일 제어
이 내 서버 코드 : 스트림을 반환 GetCover
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;
}
}
}
. 나는이 구성을 사용하고 있습니다 :
<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();
}
}
.
파일을 다운로드하는 방법을 보여주는 코드를 게시 할 수 있습니까? – Tridus