>I'm not at home, so it's tough to look up - can you specify the response
>output stream as the target for the standard >output redirection for the
>process? If so, that would connect the two, and you'd likely not even need to
>read from >the process and write to the output.
I tried
process.StandardOutput = Response.OutputStream;
and
Response.OutputStream = process.StandardOutput;
but got compile error that property is read only in both cases.
>You might need to fiddle with the flush interval for the stream, so it doesn't
>try to accrue the whole result before writing it.
Code
[AcceptVerbs(HttpVerbs.Get)]
public FileStreamResult BackupPipe()
{
var process = new Process();
process.StartInfo.Arguments = " -ib -Z6 -Fc -h 1.2.3.4";
process.StartInfo.UseShellExecute = false;
process.StartInfo.FileName = “/usr/pgsql/9.1/bin/pg_dump”;
process.StartInfo.RedirectStandardOutput = true;
Server.ScriptTimeout = 8 * 60 * 60; // 8 hours
process.Start();
return new FileStreamResult(process.StandardOutput.BaseStream,
"application/backup");
}
seems to work in both Linux and Windows.
top shows mono.bin and after download starts httpd %MEM values up to 36%
How to add error reporting so that user can notified if error occurs? Currently
bad file is received without any notice.
Before download starts, pg_dump runs without data being sent to browser and
users sees hourglass for a long time.
File download prompt in browser occurs only after pg_dump and mono.bin commands
are completed.
How to force download to start earlier or show some progress message to user in
browser during pg_dump run?
Andrus.
Note.
Wrapping process creation to use statement:
use ( var process = new Process() ) {
process.StartInfo.Arguments = " -ib -Z6 -Fc -h 1.2.3.4";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.FileName = “/usr/pgsql/9.1/bin/pg_dump”;
Server.ScriptTimeout = 8 * 60 * 60; // 8 hours
process.Start();
return new FileStreamResult(process.StandardOutput.BaseStream,
"application/backup");
}
causes “object is used after being disposed” exception in Mono but works in
windows.
Is this mono bug ?
_______________________________________________
Mono-aspnet-list mailing list
Mono-aspnet-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-aspnet-list