簡體   English   中英

經典ASP頁調用的客戶端對象的COM異常

[英]COM Exception for client-side object called by Classic ASP page

我有一個棘手的問題,我正在為此苦苦掙扎。

當前的解決方案由托管在某些Win2K3服務器上的Classic ASP網站組成,該站點在以VB6編碼的XP計算機上調用某些客戶端 DLL。

然后,這些客戶端DLL可以再次調用其他一些COM對象,在這種特殊情況下,它調用IBM Louts Notes(Lotus Domino Objects 1.2)。

現在由於不同的原因,這些DLL必須在此階段轉換為.NET(仍為x86) ,這是唯一要做的更改。 除了一段引發錯誤的代碼外,這非常有效。

COMException when calling the Lotus Notes COM object

調用DLL的ASP腳本

Set objLotus = CreateObject("OpenLotusNotes_FU_v2.clsMain")
sRet = objLotus.OpenLotus_mail()

客戶端DLL

Dim session As NotesSession = New NotesSession() 'works well
Dim objNotesWrkSp As Object
objNotesWrkSp = Activator.CreateInstance(Type.GetTypeFromProgID("Notes.NotesUIWorkspace")) 'crashes

例外

Retrieving the COM class factory for component with CLSID {29131502-2EED-1069-BF5D-
00DD011186B7} failed due to the following error: 80080005 
Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).

當我嘗試在同一台計算機上的控制台應用程序中運行此代碼時,它可以工作 所以必須有一些權限(?),我已經嘗試過更改所有我能想到的內容。

任何幫助將非常感激!

更新於01.09.2014

我看到的是,當我從ASP觸發代碼時,它每次都會創建一個新的Notes進程,但是只能在后台運行,而從沒有UI。 當我從控制台應用程序觸發代碼時,我得到了Notes UI,如果我還沒有運行注釋,則會要求我輸入密碼。

我相信我會收到異常,因為它最終會超時。

閱讀本文 ,您正在處理由於某些原因而可能無法正確初始化的Out of Process COM組件。

另一種可能性是,默認情況下使用.NET編譯的自由線程組件中不支持COM線程模型。 您可以使用STA屬性來編譯DLL,但據我所知,這僅會影響控制台應用程序。 如果您當然還沒有閱讀過本文 ,則可能會在MS的本文中找到一些其他信息。 希望那里能幫助您解決問題。

請先咨詢您的管理員,但是在這種情況下,您不能為Lotus Notes使用的ID設置密碼。

我確實解決了這個問題,所以如果其他任何人都可以執行此操作……首先,將“ Notes Link”組件服務配置為以“交互用戶”身份運行,並且流程所有者具有“啟動和激活權限”的權限,並且“訪問權限”。

那么這應該是可能的

Dim objNotesWrkSp As Object
Dim objWorkspace As Type = Type.GetTypeFromProgID("Notes.NotesUIWorkspace")
objNotesWrkSp = Activator.CreateInstance(objWorkspace)

事實證明,在這種情況下,我只能使它與后期綁定一起使用,當我嘗試這樣做時,它只是打開了conhost.exe進程,但從未響應:

Dim session as New NotesSession
session.Initialize()

除其他類似問題外,...然后,我僅將延遲綁定用於與Notes進行的所有通信。

Dim mailServerPath, mailFile As String
objWorkspace.InvokeMember("OpenDatabase", Reflection.BindingFlags.InvokeMethod, Nothing, objNotesWrkSp, New Object() {mailServerPath, mailFile})

等等...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM