C# SAPBOBBSCOM不工作

C# SAPBOBBSCOM不工作,c#,.net,iis,com,sap,C#,.net,Iis,Com,Sap,我使用asp.net C#开发了一个web应用程序来在线下订单。我的应用程序。在SAP server(windows 2008 R2)上工作正常,但当我将项目复制到本地计算机(运行windows 7)时,出现错误,无法查看sapbobcom参考。我的机器上没有SAP API DI 我试图用X86调试我的应用程序来解决这个问题。但是没有运气。 这就是我犯的错误 检索CLSID为{632F4591-AA62-4219-8FB6-22BCF5F60090}的组件的COM类工厂失败,原因是以下错误:80

我使用asp.net C#开发了一个web应用程序来在线下订单。我的应用程序。在SAP server(windows 2008 R2)上工作正常,但当我将项目复制到本地计算机(运行windows 7)时,出现错误,无法查看sapbobcom参考。我的机器上没有SAP API DI
我试图用X86调试我的应用程序来解决这个问题。但是没有运气。 这就是我犯的错误

检索CLSID为{632F4591-AA62-4219-8FB6-22BCF5F60090}的组件的COM类工厂失败,原因是以下错误:80040154类未注册(HRESULT的异常:0x80040154(REGDB_E_CLASSNOTREG))。

谢谢

我也遇到了同样的问题。 这是因为SAP Business One引用的SAPbobsCOM和SBODI_服务器缺失。我添加了这些参考资料,效果很好。
您需要在您的计算机上添加SAP DI API以使用SAPBOBBSCOM引用。

我遇到了完全相同的问题。我的SAP组件在WCF服务中运行


为了解决此问题,将应用程序池更改为在32位下运行

该问题是由于为应用程序选择了
任何CPU
平台目标而导致的

这意味着您的应用程序可以同时作为
32x
x64
进程运行,具体取决于执行应用程序的.NET运行时比特数。如果您的进程以
x64
运行,并且安装了
32x
DI API(反之亦然),则会出现此问题,因为DI API需要将本机DLL加载到进程中。但是,
32x
dll无法加载到
x64
进程中,反之亦然

这就是为什么我们必须明确允许您的应用程序使用与它将使用的DI API位完全相同的位

为此:

  • 首先,安装SAPDI API
    c:\Program Files\SAP\SAP Business One DI API\
    )和SAPBusiness One SDK
    c:\Program Files(x86)\SAP\SAP Business One SDK\
  • 接下来,找出您拥有的DI API的哪个版本(x86或x64)。如果它安装在
    c:\Program Files
    -您有x64版本,如果它安装在
    c:\Program Files(x86)\
    -您有x86版本
  • 最后,转到您的项目属性->构建选项卡,设置与DI SDK版本相同的平台目标

您需要在此计算机上安装DI-API。当您的.Net代码尝试使用DI-API中定义的类型,但无法加载该类型(DI-API使用COM实现互操作性)时,会发生此错误。@Lilshieste为什么必须安装DI-API,我已在项目中添加Interop.sapbobbscom.dll。我认为程序使用了这个dll@JohnNguyen安装过程向COM注册DI-API。
Interop.SAPbobsCOM.dll
文件只是一个文件,所以COM注册仍然是必需的。@Lilshieste谢谢,但是在我重新安装DI-API之后,我仍然会遇到这个错误。在C#中,由代码引起的错误:
sapbobbscom.Company vcmp=new sapbobbscom.Company()
您能帮忙吗me@Sam,您是否介意查看我的,看看是否可以将其标记为已被接受的,以供更多读者阅读?在花了相当长的时间寻找解决此问题的方法后,将平台目标从x86更改为x64最终解决了这一问题。我最初将它从任何CPU改为x86,但从未尝试过x64选项。谢谢