![](/img/trans.png)
[英]Issues with server-side classic ASP code within client-side <script> tags
[英]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,如果我還沒有運行注釋,則會要求我輸入密碼。
我相信我會收到異常,因為它最終會超時。
請先咨詢您的管理員,但是在這種情況下,您不能為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.