2016-11-17 121 views
0

我成功托管我的quickbooks webconnector soap应用程序在私人服务器上。我们正在尝试将其移至Azure api应用。Azure Web应用程序问题:System.Runtime.InteropServices.COMException 80040154类未注册

当我们试图运行它,我们得到了错误:

Error message: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.Runtime.InteropServices.COMException: 
Retrieving the COM class factory for component with CLSID {22E885D7-FB0B-49E3-B905-CCA6BD526B52} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). 

从我们最初部署记住这个问题,并从this intuit post,我记得我们必须确保我们的项目搭建了一个目标x86平台。我们已经做到了。当我们使用CorFlags来验证它被设置为需要32位时,我们可以从CorFlags输出中确认。

enter image description here

在Azure的门户,我们的应用程序设置设置为32位和。 我们还能遗漏什么?

+0

不知道这是你的确切情况,但它可以通过设计https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#access-to-out-of-process-com - 服务器 – Lanorkin

回答

2

正如其他地方已经提到的:您无法在App Service(Web App,API App)中注册COM对象。您需要使用允许使用的其他功能(例如网络/辅助角色,虚拟机)。

+0

所以这与32位与64位问题无关,如下所述:http://stackoverflow.com/questions/3003719/hresult-0x80040154-regdb-e-classnotreg,而是我需要注册一个特定的使用regsvr32.exe的DLL,这在Azure Web App上不可行? Web角色的新门户术语是Cloud Service,是否正确?我的asp.net asmx web服务将运行在那个? –

相关问题