ActiveX适用于localhost,不适用于外部服务器

时间:2011-10-05 13:42:14

标签: c# activex localhost

EDIT2: 对于遇到相同问题的用户,我已设法使用this page解决问题。祝你好运!

修改 显然我的问题是我需要在客户端计算机上安装ActiveX组件。这样做的正确方法是什么?

我在C#中编写了一个小型ActiveX组件,用于搜索USB闪存驱动器等可移动驱动器。我已经按照here的步骤进行了操作,简而言之,我编写了一些代码并执行了:regasm AClass.dll /tlb /codebase

我写了ActiveX组件,因为它需要在外部服务器上执行。所以我创建了一个使用ActiveX的小网页。当我使用localhost时,代码被执行并且我的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代码,虽然我认为它不需要,它只是试图找到可移动磁盘驱动器,它在我的本地主机上工作正常。

注意,这实际上是我第一次使用ActiveX。提前谢谢!

1 个答案:

答案 0 :(得分:0)

请确保您在目标计算机上安装了ActiveX控件。我正在使用RegDllView来检查它。这个实用程序是免费的,你可以在这里找到它:http://www.nirsoft.net/(尝试使用x86和x64,这取决于你的控制)。 祝好运! :)正如jeffamaphone所说 - “......这是一个痛苦的,记录不清的世界,你已经进入了......”这是真的:))