2013-04-09 86 views
0

我在ASP.NET MVC站點中使用Redemption來讀取.msg文件,進行一些更改並將其輸出給用戶。它適用於我的開發機器,但是當我嘗試登臺服務器時,出現此錯誤。System.Runtime.InteropServices.COMException在Web服務器上使用Redemption

System.Runtime.InteropServices.COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.  at Redemption.RedemptionLoader.IClassFactory.CreateInstance(Object pUnkOuter, Guid& refiid, Object& ppunk) 

是因爲我沒有在服務器上安裝outlook嗎?我的理解是,Outlook不是必需的。我也嘗試用regsvr32.exe註冊DLL,但沒有幫助。

更新:我安裝了由Dmitry建議的獨立MAPI,並重新構建了我的Web應用程序以定位到x64平臺。服務器是Windows Server 2008 R2 x64,所以我認爲64位是正確的目標。但它仍然給我同樣的錯誤。我的代碼如下所示:

RedemptionLoader.DllLocation64Bit = Server.MapPath("~/bin/dlls/Redemption64.dll"); 
RedemptionLoader.DllLocation32Bit = Server.MapPath("~/bin/dlls/Redemption.dll"); 
Interop.Redemption.RDOSession session = RedemptionLoader.new_RDOSession(); 

第三行是拋出錯誤。我錯過了什麼嗎?

我也嘗試編譯站點到目標x86,但IIS不會加載站點.dll在那一點上。

+0

編輯您的應用程序池的高級設置'啓用32位應用程序'。 – Chalky 2016-09-06 08:24:31

回答