2013-02-20 65 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文件相同)。