簡體   English   中英

從asp.net Web服務調用vb6對象失敗,但可從Forms應用程序工作

[英]Calling vb6 objects from asp.net web service fails but works from forms app

我們在Windows Small Business Server 2008 SP2( 64位 )上運行了一個asp.net Web服務。 它在自己的應用程序池中。 我們已經嘗試了“托管管道模式”的“集成”和“經典”設置。 啟用32位應用程序設置為True。 它無法成功調用vb6 dll方法,但同一台計算機上的Windows Forms應用程序可以。

實例化了兩個vb6 dll(A和B)。 將A中的方法傳遞給B作為其參數之一的引用。 然后,該方法調用自身內部的其他方法,這些方法也需要引用B。

A中的這些內部方法調用因此vb6錯誤而失敗(A方法將這些錯誤記錄在Windows應用程序事件日志中):

70(權限被拒絕)

Windows系統事件日志中還記錄了另一個錯誤:

機器默認權限設置不會從地址LocalHost(使用LRPC)向用戶NT AUTHORITY \\ NETWORK SERVICE SID(S-1-5-20)授予CLSID為{xxx}的COM Server應用程序本地激活權限。 可以使用組件服務管理工具來修改此安全權限。

使用DCOMCNFG(組件服務)已經配置了有關對象(第三個vb6組件,它是ActiveX EXE),並具有對網絡服務甚至每個人的完全啟動,激活和訪問權限。 此外,從資源管理器中,已將對所有必需的vb6組件的完全控制/權限授予了NETWORK SERVICE(也嘗試了所有人)。

同一台計算機上的Windows窗體應用程序能夠成功調用A中的方法。同一Web服務可在另一台具有32位OS的計算機上運行。

Web服務和Forms應用程序都是在Platform Target設置為“ x86”的情況下構建的。

我們如何獲得Web服務調用以在64位計算機上工作?

Web服務是否使用任何模擬運行? 如果沒有,那么值得嘗試在web.config文件中設置身份以使用專用的Windows帳戶,然后確保已設置了啟動/執行dcom權限。

暫無
暫無

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

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