【发布时间】:2014-07-13 19:57:31
【问题描述】:
我陷入了一个非常奇怪的问题,我还没有从互联网上找到解决方案。这是我的问题:-
我有一个预编译的 java 类,它在 javareg 实用程序中注册,因此它可以用作经典 ASP 页面中的 COM 对象。因此,在 global.asa 中使用 Prog ID 调用这个 java 类,然后在整个页面中使用它来调用它的方法。这在我们当前的开发服务器 Windows Server 2003 R2 中运行良好。但是,它不适用于我们新的 64 位 Windows Server 2008 R2。
我已经使用 javareg 完成了注册,但是当我尝试在 ASP 页面中使用 Server.CreateObject 创建对象时,我收到“ASP 0177 : 80070002' Server.CreateObject Failed”。因此,我尝试在我们现有的开发服务器中创建一个示例 java 类,并使用 javareg 注册它并使用 Server.CreateObject 实例化它,但即使我在开发服务器中遇到同样的错误,这证明我什至无法使用即使在工作的开发服务器中,java 类也可以作为 COM 对象。另外,当我尝试使用 Vb 6 模拟 CreateObject 方法时,我现在遇到了 Classfactory 自动化错误。
那么可能是什么问题?我看到我登录到服务器的 id 已添加到管理员组,因此存在任何权限问题的微弱机会。另外,我在控制面板->组件中看到了已注册的 java COM 组件...任何建议或帮助都非常感谢...
附加信息:-
现有的开发服务器规格:
Windows Server 2003 R2(32 位)
IIS 6.0
.Net 框架 2.0
新服务器规格:
Windows Server 2008 R2(64 位)
IIS 7.5
.Net 框架 3.5
【问题讨论】:
-
注册命令是什么?试试这个,看看你是否得到了相同的结果,rgagnon.com/javadetails/java-0044.html 和他们的班级等等一样,而不是你的。
-
应用程序池(您的 Web 应用程序正在使用)是否在高级设置中设置为使用
Enable 32 Bit Applications设置为True? -
javareg /register /class:abc.class /progid:abc trustlib 目录已经存在于 C:\windows\java...因此,我做了这个:- 复制 abc.class c: \windows\java\trustlib\abc.class
-
另外,在 IIS 中启用 32 应用设置为 true
-
您是否尝试过相反的方法?
Enable 32 Bit Applications设置为False可能是javareg可能是 64 位应用程序,并且无意中将 ProgId 注册到 64 位类注册表中。
标签: java windows iis asp-classic com