2013-02-20 67 views
0

我正在开发一个C#应用程序,并且找不到使用C#备份数据库的任何详细信息。我想提供的应用能力,以保存数据库的备份等Postgresql数据库备份

我真的很感激,如果有人可以提供有关此问题的信息的用户。我使用该系统的规格是:

操作系统:Windows XP专业版/ Windows Vista中 DB:PostgreSQL的 的.Net连接的C#:Npgsql的

我已经遵循了这样的方法结合的方式

public static Boolean myfile(String content,String path) 
{ 
    Boolean result = false; 
    try 
    {     
     System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo(); 
     info.FileName = path; 
     info.Arguments = content; 
     info.CreateNoWindow = true; 
     info.UseShellExecute = false; 
     System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
     proc.StartInfo = info; 
     proc.Start(); 
     proc.WaitForExit();     
     result = true; 

    } 
    catch (Exception ex) 
    { 
     Console.writeline(ex.Message); 
    } 
    return result; 
} 

,太我已经通过了参数

content:pg_dump --inserts -h x.x.x.x -U xxxx -n public -w xxxx > D:\sql\mysample.sql 


path:D:\Program Files\PostgreSQL\9.0\bin\PostgreSQL\9.0\bin\ 

我得到异常响应为

访问被拒绝

更新1:

我太习惯这样的代码获得许可的

//var permissionSet = new PermissionSet(PermissionState.None); 
//var writePermission = new FileIOPermission(FileIOPermissionAccess.AllAccess, dirName); 
//permissionSet.AddPermission(writePermission); 

它不帮我。

+0

我认为“访问被拒绝”非常明确:运行该程序的用户不允许写入该文件。 (除非你的错误信息实际上看起来不同于你发布的内容)。 – 2013-02-20 07:39:39

+0

@a_horse_with_no_name你好,我应该在哪里设置权限才能工作 – GowthamanSS 2013-02-20 08:15:26

+0

通过目录的Windows“安全”设置。 – 2013-02-20 08:26:33

回答

0

访问被拒绝建议文件权限问题。也许你的用户没有权限运行pg_dump,或者在写入文件输出时出现问题。

要做的第一件事就是尝试运行它,只是丢弃输出,看看你得到同样的错误。如果不这样做,则需要设置文件权限(右键单击目录,安全性,设置权限)。如果你这样做,你有一个问题运行pg_dump(尝试与pg_dump文件相同)。