2014-01-16 86 views
3

以下代碼在本地開發計算機上正常工作。但是,當我將它部署到Azure遠程網站時,我收到以下錯誤消息。我已經看過SO答案和谷歌搜索結果,但它仍然不清楚我必須在本地機器上安裝什麼,以便當我將代碼推送到Azure時,錯誤將消失。Windows Azure遠程站點'Microsoft.ACE.OLEDB.12.0'提供程序未在本地計算機上註冊

錯誤消息:

的 'Microsoft.ACE.OLEDB.12.0' 供應商未註冊的本地機器上。

我的代碼..

string filename = Server.MapPath("/") + "MyExcelDataFile.xlsx"; 
string connectionString = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=YES\";", filename); 
string query = String.Format("SELECT * from [{0}$]", "myRange1"); 
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString); 
DataSet dataSet = new DataSet(); 
dataAdapter.Fill(dataSet); 
DataTable YourTable = dataSet.Tables[0]; 
+0

目標服務器上安裝該組件 - http://www.microsoft.com/en-us/download/details.aspx?id=13255 – ramiramilu

回答

3

如果您使用的是Azure的VM,只需安裝從微軟的網站的OLE DB驅動程序。

但是,如果您使用的是Web角色Excel OLE驅動程序沒有安裝在它們上面。

使用第三方組件,如EPPlus查詢您的Excel文件來代替。

+0

由於凸輪!!!!! EPPLUS很棒! –

+0

有沒有其他的選擇。如果我們不想使用epplus –

2

我想這是因爲OLEDB驅動程序不蔚藍的虛擬機上存在,但在本地開發機器上確實存在。

如果您使用的是Windows Azure的虛擬機,你可以找到Microsoft.ACE.OLEDB.12.0驅動程序的安裝,通過RDP你蔚藍的機器,那麼它應該可以解決上覆制和安裝。

如果您使用的Windows Azure雲服務,那麼你可能需要找到通過啓動/任務過程中安裝/註冊此驅動程序的方法(COM我猜)。而且您還需要確保該驅動程序支持x64。

如果您使用的是Windows Azure的網站,因爲我不使用的是認爲你可以安裝/不管註冊其他組分網站規劃(免費,共享爲標準),這可能是一個問題。

希望這會有所幫助。

+0

嗨Shaun,我正在使用Windows Azure網站(完整訂閱)。有什麼方法可以安裝所需的驅動程序? –

+0

我不認爲你可以。也許您必須更改才能使用Cloud Service。 –

+0

謝謝肖恩!欣賞反饋。 –

相關問題