2013-04-09 93 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

回答