如何在ISAPI中调用COM?(200分)

  • 主题发起人 主题发起人 wheel
  • 开始时间 开始时间
W

wheel

Unregistered / Unconfirmed
GUEST, unregistred user!
问题如题。
在EXE中调COM没问题,做成DLL加到IIS后浏览提示'HTTP 500 - 内部服务器错误'.
据我的调试,是在建立COM对象时程序异常。
试了N次都搞不定:(
我用的方法1:
var
Intf:IFirstRDMDisp;
tmpS:WideString;
begin
Intf:=CoFirstRDM.Create as IFirstRDMDisp;
Intf.GetData(tmpS);
end;
方法二:
var
vDoDemo:Variant;
tmpS:WideString;
begin
CoInitialize(nil);
try
vDoDemo:=CreateOleObject('DFMSvr.FirstRDM');
vDoDemo.GetData(tmpS);
Response.Content:=tmpS;
finally
CoUninitialize;
end;
end;
DCOMCNFG也配了半天,实在是搞不定,只有喊救命了。
 
忘了说了,主要是COM中有调用数据库。DLL再请求相关功能服务。
编写简单的Demo测试,如果COM中没用数据库调用,是可以成功的。
 
1 肯定是不行,
2 我估计是TEPS的问题,我作过一个类似的DLL,也是在DLL里建COM对象,
没有出问题,我哪个和代码2就是CreateOleObject('DFMSvr.FirstRDM')里的
哪个字符串不同,还有你看看你的COM初试化代码CoInitialize(nil)是不是
应该改成CoInitializeEx
 
有点久了,记得当时的解决办法是不能用RemoteDataModule。
为什么呢?大家给我讲讲Multitier页中那三个DataModule的区别吧。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部