我试图通过旧版应用程序的组件服务向导安装在VB6中创建的新dll。 直到我尝试访问相关的asp网页并收到服务器500错误,一切似乎都正常工作。 检查事件日志显示以下内容:
在安装以下组件时更改了注册表值 进入COM +应用程序。如果您遇到激活问题 使用此组件,然后请检查注册表值 跟随键。
Component: dllpath\mydll.dll Registry Key: CLSID\{D5DE8D20-5BB8-11D1-A1E3-00A0C90F2731}\InProcServer32 Process Name: RunDll32.exe Comsvcs.dll file version: not loaded
我一直在努力寻找解决方案,据我所知,这是由于我试图将32位dll放在64位OS上而导致的。。。如果我错了,请纠正我。
到目前为止,我已经尝试过:
使用提升的命令提示符:
REGSVR32 "mydll.dll"
给出错误消息“模块“ mydll”可能与您正在运行的Windows版本不兼容。请检查该模块是否与x86(32位)或x64(64位)版本兼容regsvr32.exe”
C:\Windows\SysWOW64\REGSVR32 "mydll.dll"
弹出一条消息,表明已成功,但是该组件未在组件服务中显示,并且仍然出现服务器500错误。
使用组件服务管理单元通过MMC -32添加它也不起作用。
我还发现了this,但是作为一个几乎不了解修改注册表项的人,我不愿意尝试。
真正奇怪的是,我在大约600万年前对该系统进行了更改,并以相同的方式添加了两个新的dll,而没有任何问题。
感谢任何帮助或想法。
编辑: 我尝试添加的dll是对我在〜6m以前编辑的版本进行的更新,没有任何问题,当我尝试重新安装此版本时,我也收到相同的错误消息。
开发环境-具有VB 6.0的Windows Server 2003 VM