【发布时间】:2019-10-17 19:21:53
【问题描述】:
我有一个已注册的 DLL(用 VB6 编写),可以在 VB6 exe 中正常工作。但是在同一台机器上,当我尝试在 CLASSIC ASP 中创建服务器对象时,IIS7.5 就挂了。
...
dim bob as object
Set bob = Server.CreateObject("project.classname")
...
我对管理 IIS 知之甚少。我曾尝试在模块部分中注册此 DLL,但这没有用。所以我删除了它。有一次,我什至在我的实验中完全阻止了 ASP 页面的加载,这需要我实际编辑 applicationHost.config 文件以删除对我的 DLL 的所有提及。
我确信这是我的 DLL 的 IIS 问题,但我的谷歌搜索都没有得到我可以理解或有效的点击。
非常感谢您的帮助。
谢谢 哈利
【问题讨论】:
-
几件事,1. Web 应用程序正在使用的应用程序池是否将
Enable 32 bit Applications设置为True? 2、DLL是否有兼容的COM接口(iDispatch支持后期绑定,不支持早期绑定)? -
谢谢兰奇。当我回到家时,我会看看 32 位应用程序是否设置为。我想,因为当我测试它时,我的 VS2017 的 ASP 页面中引用了相同的对象 - 它运行良好。 VS 内置 IIS 的某些设置是正确的,而我的机器实际 IIS 不是我的主要理论。但我不知道如何查看 VS2017 那里发生的事情.....
-
@Lankymart VB6 DLL 会自动设置 COM 接口,不是吗?
-
@HarryA 你是如何确定它挂在哪一行的?
-
@DaveInCaz 老实说,我不是 100% 确定,但如果它没有实现
iDispatch接口,它将无法与 VBScript 中的后期绑定一起使用。多年来看到过类似的问题,因此提出了建议。
标签: dll asp-classic vb6 iis-7.5