0

我在 ASP.NET MVC 站点中使用Redemption来读取 .msg 文件,进行一些更改并将其输出给用户。它可以在我的开发机器上运行,但是当我在登台服务器上尝试时,我收到了这个错误。

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,并重新构建了我的网络应用程序以针对 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。

4

1 回答 1

1

兑换需要安装 MAPI 系统,这意味着必须安装 Outlook 或MAPI 的独立版本。还要确保您的代码位数与 MAPI 系统的位数相匹配 - 请参阅http://www.dimastr.com/redemption/faq.htm#ErrorCreatingRedemptionObject

于 2013-04-09T20:11:22.667 回答