C# Postgresql数据库备份

C# Postgresql数据库备份,c#,.net,postgresql,C#,.net,Postgresql,我正在开发一个C#应用程序,无法找到有关使用C#备份数据库的任何详细信息。我想为用户提供应用程序保存数据库备份等功能 如果有人能提供关于这个问题的信息,我将不胜感激。我使用的系统规格如下: 操作系统:Windows XP Pro/Windows Vista DB:PostgreSQL C#:Npgsql的.Net连接 我一直遵循这样的方法 public static Boolean myfile(String content,String path) { Boolean result =

我正在开发一个C#应用程序,无法找到有关使用C#备份数据库的任何详细信息。我想为用户提供应用程序保存数据库备份等功能

如果有人能提供关于这个问题的信息,我将不胜感激。我使用的系统规格如下:

操作系统:Windows XP Pro/Windows Vista DB:PostgreSQL C#:Npgsql的.Net连接

我一直遵循这样的方法

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);

这对我没有帮助。

拒绝访问表明存在文件权限问题。可能您的用户没有运行pg_dump的权限,或者写入文件输出时出现问题


要做的第一件事是尝试运行它,然后放弃输出,看看是否会出现相同的错误。如果没有,则需要设置文件权限(右键单击目录、安全性、设置权限)。如果您这样做了,您在运行pg_dump时会遇到问题(请尝试对pg_dump文件执行相同操作)。

我认为“访问被拒绝”是非常清楚的:运行此程序的用户不允许写入该文件。(除非你的错误消息看起来与你发布的消息不一样)。@a_horse_,没有名字,好的,我应该在哪里设置权限,以便通过目录的Windows“安全”设置进行操作。@a_horse,没有名字,见我的更新答案