ASP组件

zhuifeng529 2005-03-23 01:07:02
我为我们的一个网站系统做了一个ASP组件,在本机测试正常,发布出去,有各别用户说一调用页面就会死掉,然后IIS就全死了,其它网站不能在使用。该组件中与IIS中有关系的就是获取当前的域名与当前网站的路径和对Session操作一次,代码如下,
Request.ServerVariables.Item[37];//返回域名
Request.ServerVariables.Item[4];//返回路径
//操作Session
if Session.Value[Web_SessionName+ 'AdminNames'] = '' then
REsult := OperErr
else
Result := StrToInt(Session.Value[Web_SessionName+ 'AdminLevels']);
其它的都是数据库的连接,如
function TLDOConn.OpenConn(const DBPath: WideString): Byte; //创建连接
const
DBSource = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=';
begin
try
DBConn := CreateOleObject('ADODB.Connection'); //DBConn是全局变量
DBConn.Open(DBSource + DBPath);
Result := OperSuc;
except
Result := OperErr;
end;
end;

function TLDOConn.CloseConn: Byte; //关闭连接
begin
if VarIsNull(DBConn) then
begin
DBConn.Close;
end;
end;
还有就是用到了ADOTable这个组件,它用在一个方法里,用后就释放了
在我的这个程序中,没有用到如CoInitialize等方法,与它们有关系嘛?大家帮我分析一下,IIS死的可能性,死掉的系统是2000,多谢
...全文
105 点赞 收藏 11
写回复
11 条回复
zhuifeng529 2005年03月24日
对,现在有的服务商同意注册我的组件
回复 点赞
microcat 2005年03月24日
你看看Delphi开发人员指南,有专门讲如何调试的,就是先把它搞成进程外对象,然后与桌面交互等等,估计是内存管理方面的问题,函数尽量用stdcall
回复 点赞
Bitter_fish 2005年03月24日
如果是网络上的服务器那是肯定会死的,一般空间服务商是不会允许你运行自己的组件的。

你的组件在服务器上注册了???
回复 点赞
zhuifeng529 2005年03月24日
谢谢你 Bitter_fish(苦鱼)
大家还有什么想法,分好说
回复 点赞
qiuzhijun 2005年03月24日
帮你顶个
回复 点赞
Bitter_fish 2005年03月24日
首先我没做过,没什么经验,IIS的配置有问题的可能性很大,和管理员沟通一下吧。

另外加上线程同步的技术试一下,能想到的也就这么多了。

wish you luck ,man
回复 点赞
vinsonshen 2005年03月24日

回复 点赞
zhuifeng529 2005年03月23日
回复 点赞
zhuifeng529 2005年03月23日
关键是在我机器上怎么也不死,现在是安装组件后,在第一次调用页面时就会死,IIS我也不知道,因为不是我的机器,都是网络上的服务器
回复 点赞
Bitter_fish 2005年03月23日
1、你写一个最简单的组件,就是什么也不做的那种,用ASP调用一下看是否会死,不死的话多用户同时访问看看,如果不死说明IIS没有问题。反之IIS有问题。IIS的设置你确定都看过并理解了吗??

2、在你的开发机器上用多用户仿问看死不死!如果不死说明程序没问题!定位为系统问题!

3、下面搞你的死机程序,如果是我就在1所说的简单代码中一块一块的加入代码,看是加到哪出错!


这种错误我最怕怕了!!!!
回复 点赞
zhuifeng529 2005年03月23日
帮我顶呀
回复 点赞
发动态
发帖子
网络通信/分布式开发
创建于2007-08-02

925

社区成员

3.3w+

社区内容

Delphi 网络通信/分布式开发
社区公告
暂无公告