2014-03-06 127 views
0

我的目標:創建一個程序,該程序可以每天將SharePoint數據庫複製到SQL服務器。它應該從服務器運行,並且應該每天運行。遠程服務器上的OLEDB連接字符串問題

現狀:在SharePoint網站鏈接到ACCDB我OLEDB打開它,程序運行在本地生成的表/列/數據類型和複製數據的ACCESSDB文件類型的本地副本。

問題:當我接受我的解決方案並嘗試將其部署到遠程服務器時,它有一個彈出窗口,要求用戶打開accessDB的代碼段。我需要這個窗口去死。 該過程必須是自動的,所以顯然不需要人工輸入來運行。

我花了好一天的時間試圖讓這個東西消失,程序運行時沒有它。沒有運氣谷歌,StackOverflow,connectionstrings.com,或MSDN和很多其他的隨機網站。


相關代碼:

 public void openDataFromAccess(string connectionString, string tableName, string connectionString2) 
    {    
     string sqlQuery = "SELECT * from [" + tableName +"]"; 
     try 
     { 
      using (DataTable dt = new DataTable()) 
      { 
       using (OleDbConnection conn = new OleDbConnection(connectionString)) 
       using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn)) 
       using (OleDbDataAdapter adapter = new OleDbDataAdapter(cmd)) 
       { 
        cmd.CommandType = CommandType.Text; 
        cmd.Connection.Open(); 
        adapter.SelectCommand.CommandTimeout = 240; 
        adapter.Fill(dt); 
        adapter.Dispose(); 
       } 

默認的連接字符串:

string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Migration\Sharepoint Access SQL Batch Job\Database2.accdb;Jet OLEDB:Database Password=password"; 

事情我已經嘗試包括:

User Id=userid;Password=pass 
    Persist Security Info=False; 
    Delay Validation=TRUE 
    Integrated Security=true; 
    Mode=Read; 

和所有其他設置我能找到連接字符串無濟於事。


的彈出有一個保存信息設置,但我寧願它是在程序中,但窗口不保存passwork當我在手動鍵入它,但它不運行。我似乎無法讓它接受硬編碼值? 重新啓動服務器並啓動Credential Manager和註冊表編輯器的服務沒有幫助。

當我嘗試硬編碼用戶發生的各種錯誤,如:

「工作組信息文件丟失或者被其他程序exclusivly打開」

用戶沒有認證或者類似的一些類似的消息(當用戶應該是,我已經嘗試了幾個用戶,並創建新的用戶和管理員等非常非常小心,因爲我認爲是正確的輸入) 我試圖編輯sharepoint管理員,但在我訪問時,當我嘗試編輯它將鏈接到共享點的權限。

沒有JET註冊表我不得不手動安裝AccessDataBaseEngine_x64。在此之前,該程序並未在服務器上運行。

我相當肯定該解決方案將是簡單的,但我迄今爲止嘗試過的方法沒有奏效。

想法?

+0

我可以問,爲什麼不使用內置的SQL Server Management Studio功能與chronjob結合進行夜間備份以將備份導入到另一個sql server實例? – Marco

+0

好問題! 這是我嘗試的第一件事。 -_- SQL Server Management Studio無法識別文件類型accdb,似乎不支持此文件類型。我試圖將其轉換爲.mbd支持,但它引發「無法識別的數據庫格式」也沒有運氣谷歌搜索解決方案= /如果你知道如何解決這個錯誤,請告訴我。 – JPK

+0

爲什麼它必須是.mdb格式?不是標準的.bak備份文件不夠嗎? 附加問題:如果您只是想將Sharepoint數據庫從一臺服務器複製到另一臺服務器,爲什麼不使用鏡像? – Marco

回答

0

該項目被取消,所以沒有必要的解決方案。

數據庫有一些身份驗證問題,並且此方法不支持傳遞特定用戶看起來,所以我會拋出它並嘗試使用SharePoint的虛擬服務器或其他方法。我也聽說新的庫會更好地支持SharePoint。