2011-10-05 116 views
3

編輯2: 對於有同樣問題的用戶,我設法使用this page來解決它。祝你好運!ActiveX在localhost上工作,不能在外部服務器上工作

編輯︰ Apperently我的問題是,我需要在客戶端計算機上安裝ActiveX組件。什麼是正確的方法來做到這一點?

我在C#中編寫了一個小型ActiveX組件,它搜索可移動驅動器,如USB閃存驅動器。我遵循步驟here,簡而言之,我寫了一些代碼並做了如下操作:regasm AClass.dll /tlb /codebase

我寫了ActiveX組件,因爲它需要在外部服務器上執行。所以我做了一個使用ActiveX的小型網頁。當我使用本地主機時,代碼被執行並且我的USB密鑰被檢測到。它甚至可以在最終目標的ASP.NET頁面內工作。

但是,從外部服務器訪問頁面時,代碼不會執行。我在加載ActiveX組件之前和之後放置了javascript警報。加載ActiveX後的警報甚至不會觸發。

該網頁使用此代碼:

<html> 
<head> 
    <script language="javascript"> 
    alert("Loading ActiveX"); 
    var x = new ActiveXObject("ANamespace.AClass"); 
    alert(x.GetDrives()); 
    alert("Done"); 
    </script> 
</head> 
<body></body> 
</html> 

我可以張貼的C#ActiveX代碼雖然我覺得不需要它,它只是試圖找到移動diskdrives,它在我的本地沒有工作的罰款。

注意,這實際上是我第一次使用ActiveX。提前致謝!

+0

你是否安裝在外部機器上的ActiveX控件? –

+0

我不確定你的意思是通過安裝,但我想我是這麼做的。我在外部機器上運行了網頁,並且ActiveX控件在那裏工作。 – Carlito

+0

您的ActiveX服務器需要安裝在運行javascript的機器上。保持它在服務器上不是一個選項。 –

回答

0

確保您在目標機器上安裝了ActiveX控件。我正在使用RegDllView來檢查它。這個工具是免費的,你可以在這裏找到它:http://www.nirsoft.net/(嘗試使用x86和x64它取決於你的控制)。 祝你好運! :)由於jeffamaphone說 - 「...這是一個痛苦的,記錄不佳的世界,你已經進入..」這是真的:)

相關問題