创建对象时出现“ASP不支持此接口”错误

9

我有一个使用第三方OCX控件的Windows Forms应用程序。以下命令用于在运行时创建对象。

myObject = myApplication.CreateObject("ML.MFinder", True)

这个代码在本身运行正常且progID也正确。问题出现在asp项目中,会出现以下错误:

System.Runtime.InteropServices.COMException: No such interface supported

at ML.MApplicationClass.CreateObject(String ProgID, Boolean Allocate)

非常奇怪,因为其他OCX对象在ASP项目中能够正常工作。我使用的是IIS 5.1、Windows XP Pro SP3和Framework 3.5。我也手动注册了OCX。


你添加了引用吗? - शेखर
是的,当然。已经添加了。 - Jaume
OCX支持哪些线程模型? - tcarvin
请问如何检查它?我在 Windows 表单方面经验丰富,但不擅长 ASP。 - Jaume
2个回答

2
在IIS下,访问外部文件或dll的规则不同。我认为对于OCX文件,IIS可能会更加严格限制。我不认为问题在于引用或类似的东西。正如你所说,你已经注册了OCX,但是这个OCX是否还有其他依赖项?它们也需要正确地注册。

2

这个OCX控件是否需要特定的文件系统读写权限?如果是,那么您需要在文件系统级别上授予权限:IUSR_XXXXX = READ + EXECUTE。

您还应该使用Dependency Walker工具检查是否缺少任何依赖项。

您是否在异常中获取了任何类ID?如果是,则请检查注册表中是否存在该类ID。


异常中没有类 ID。我已经为IUSR_账户设置了权限,但没有成功。不过,谢谢你的提示,我之前不知道这一点。如果权限没问题,怎么继续呢?仍然显示“无此接口错误”。 - Jaume
@Jaume:你能分享更多的代码吗?比如你创建这个对象的过程?另外,你正在使用asp还是asp.net? - Amit Rai Sharma
感谢你的建议,我在 WebService 方法被调用后创建了一个新的线程。然后,在该线程中,没有报告任何错误。谢谢你。 - Jaume

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接