使用ADODB.Stream组件频繁引起session丢失

shuangren 2015-02-15 06:37:08
以前有个网站是gb2312编码,使用FSO组件保存缓存文件
最近把这个网站改为utf-8编码,因为FSO组件不支持utf-8,所以改为使用ADODB.Stream组件保存缓存文件
现在问题出现了,只要批量生成缓存文件的,就频繁丢失session
虽然该网站所在服务器配置不高,是vps,但网站访问量更低,每天才100IP左右,不存在在线用户太多的可能
我尝试着修改程序池的各种设置方式,均没解决问题
到最后我把注意力集中在ADODB.Stream组件上,我发现只要不运行
objStream.SaveToFile myserver.MapPath(path), 2
这一句,就不会出现session丢失的现象,而只要频繁运行它,很快session就丢了

session丢失是个老话题,这几天我查了大量资料,往往最后只有一句:无法解决,或者使用cookies
但问题是我遇到的这个问题明显不是session的原因,原因出在ADODB.Stream组件上
请大家帮帮我,说不定这次能解决这个老大难问题
我使用的是dll
-------------------------dll内容如下------------------------------

Function wrf(ByVal path, ByVal content, ByVal CharSet)
Dim objStream
Set objStream = myserver.CreateObject("ADODB.Stream")

'objStream.open
'objStream.CharSet = CharSet
'objStream.Position = objStream.Size
'objStream.WriteText = content
'objStream.SaveToFile myserver.MapPath(path), 2
'objStream.Close
'Set objStream = Nothing

With objStream
.Type = 2
.Mode = 3
.CharSet = "utf-8"
.Open
.WriteText content
.SaveToFile myserver.MapPath(path), 2
End With

wrf = True

If Err Then
wrf = False
End If
End Function


-------------------------网页内容如下,test.wr是组件名称------------------------------

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%option explicit%>
<% Response.CodePage=65001%>
<% Response.Charset="UTF-8" %>
<%
Dim test, filepath, data
set test = server.createobject("test.wr")
data = "中华人民共和国"
dim i
for i = 1 to 10
filepath = "\" & i & ".asp"
Call test.wrf(filepath, data, "utf-8")
next
set test = nothing
%>

使用for循环是模拟批量生成缓存文件
...全文
200 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
邱嵩松 2015-02-19
  • 打赏
  • 举报
回复
用txt文档来储存你的缓存试试
hookee 2015-02-17
  • 打赏
  • 举报
回复
批量的写文件的操作放在asp里处理是比较耗资源的,可以采用异步方式, 用消息队列 加 服务的方式去做。
孟子E章 2015-02-17
  • 打赏
  • 举报
回复
可能的原因: 1,内存不足,Session是存储在内存中的。 2,文件的变化导致实时杀毒软件运行病毒扫描程序导致,可以关闭实时监控程序
三楼の郎 2015-02-17
  • 打赏
  • 举报
回复
别用.asp做文件扩展名试试
shuangren 2015-02-15
  • 打赏
  • 举报
回复
这个问题大概是多文件高并发写入IO过大导致的session丢失 我在写文件程序中加了一段for循环session就不丢了 for j = 1 to 500000 next 但是这不是解决之道啊
shuangren 2015-02-15
  • 打赏
  • 举报
回复
刚才试着改用FSO组件生成缓存文件,仍然会丢失session

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧