[Mono-aspnet-list] How to backup PostgreSql database from browser in MVC2 application on Mono in Linux

Andrus kobruleht2 at hot.ee
Fri Mar 23 18:45:53 UTC 2012


I created Mono MVC2 application to backup database from browser.
pg_dump runs but looks like it is aborted. apache error_log contains its output ending in middle of line.

After some time of work exception Thread was being aborted occurs (whole error message is below).

How to fix or diagnose it so that backup copy can saved from brower over internet ?

Andrus.


[Authorize]
public class BackupController : ControllerBase
{
   [AcceptVerbs(HttpVerbs.Get)]
   public ActionResult Backup()
   {
            var pinfo = new ProcessStartInfo();
            var fn = "backup.backup";
            pinfo.Arguments = " -ib -Z6 -f \"" + fn + "\" -Fc -h \"" + "myserver" + "\" -U \"" +
                "postgres" + " \"" + "mydb" + "\"";
            pinfo.FileName = "/usr/bin/pg_dump";
            pinfo.UseShellExecute = false;
            using (var process = new Process())
            {
                process.EnableRaisingEvents = true;
                process.StartInfo = pinfo;
                process.Start();
                while (!process.HasExited)
                    Thread.Sleep(2000);
                process.WaitForExit();
                if (process.ExitCode!=0)
                  throw new Exception("error");
                process.Close();
            }
            Response.ClearContent();
            Response.WriteFile(fn);
            Response.End();
            System.IO.File.Delete(fn);
            return null;
        }
}


Server Error in '/myapp' Application
--------------------------------------------------------------------------------

Thread was being aborted
Description: HTTP 500. Error processing request.
Stack Trace: 

System.Threading.ThreadAbortException: Thread was being aborted
  at System.Web.HttpApplication.async_handler_complete_cb (IAsyncResult ar) [0x0002d] in /usr/src/redhat/BUILD/mono-2.10.2/mcs/class/System.Web/System.Web/HttpApplication.cs:1010 
  at System.Web.Mvc.Async.AsyncResultWrapper+WrappedAsyncResult`1[System.Web.Mvc.Async.AsyncVoid].Begin (System.AsyncCallback callback, System.Object state, Int32 timeout) [0x00000] in <filename unknown>:0 
  at System.Web.Mvc.Async.AsyncResultWrapper.BeginSynchronous[AsyncVoid] (System.AsyncCallback callback, System.Object state, System.Func`1 func, System.Object tag) [0x00000] in <filename unknown>:0 
  at System.Web.Mvc.Async.AsyncResultWrapper.BeginSynchronous (System.AsyncCallback callback, System.Object state, System.Action action, System.Object tag) [0x00000] in <filename unknown>:0 
  at System.Web.Mvc.MvcHandler.BeginProcessRequest (System.Web.HttpContextBase httpContext, System.AsyncCallback callback, System.Object state) [0x00000] in <filename unknown>:0 
  at System.Web.Mvc.MvcHandler.BeginProcessRequest (System.Web.HttpContext httpContext, System.AsyncCallback callback, System.Object state) [0x00000] in <filename unknown>:0 
  at System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest (System.Web.HttpContext context, System.AsyncCallback cb, System.Object extraData) [0x00000] in <filename unknown>:0 
  at System.Web.HttpApplication+<Pipeline>c__Iterator6.MoveNext () [0x00d42] in /usr/src/redhat/BUILD/mono-2.10.2/mcs/class/System.Web/System.Web/HttpApplication.cs:1365 
  at System.Web.HttpApplication.Tick () [0x00000] in /usr/src/redhat/BUILD/mono-2.10.2/mcs/class/System.Web/System.Web/HttpApplication.cs:932  

--------------------------------------------------------------------------------
Version information: Mono Runtime Version: 2.10.2 (tarball Mon Apr 18 18:57:39 UTC 2011); ASP.NET Version: 2.0.50727.1433
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ximian.com/pipermail/mono-aspnet-list/attachments/20120323/0648fabf/attachment.html>


More information about the Mono-aspnet-list mailing list