2016-11-17 118 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服務將運行在那個? –

相關問題