我有一个具有第三方ocx控件的Windows窗体应用程序。以下命令用于在运行时创建对象。
myObject = myApplication.CreateObject("ML.MFinder", True)
这是正常工作,progID也是正确的。问题是在asp项目中做同样的事情,我得到以下错误:
System.Runtime.InteropServices.COMException: No such interface supported
在ML.MApplicationClass.CreateObject(String ProgID,Boolean 分配)
奇怪,因为其他ocx对象也可以在asp上正常工作 项目。我使用IIS 5.1,Windows XP Pro SP3和框架3.5。 我也手动注册了ocx。
答案 0 :(得分:2)
在IIS下,您没有相同的规则来访问外部文件或dll。我认为使用OCX文件,IIS可能更具限制性。
我不认为问题是参考或类似的东西。正如你所说,你已经注册了OCX,但是这个OCX还有一些依赖吗?他们也需要正确注册。
答案 1 :(得分:2)
此ocx控件是否需要对文件系统进行任何特定的读写访问?如果是,那么您需要在文件系统级别上授予权限:IUSR_XXXXX = READ + EXECUTE。
您还应该使用Dependency Walker工具检查是否缺少任何依赖项。
您是否在异常中获得任何类ID?如果是,则检查注册表中是否存在该classid。