主题:  一个在IIS5.0下文件写入权限的问题,请高手不吝赐教!

bluesteel

职务:普通成员
等级:1
金币:0.0
发贴:12
#12003/11/24 11:03:32
在IIS5.0下,用FSO写入文件时,如果在站点任何一级目录下都无法成功写入文件,不管权限设置如何,而在其它目录下均可随意写入,上述都是本机调试,OS为WinXP,我只想设置一个简单的计数器,不想用什么数据库,请问计数的文本文件必须要写到除站点目录以外的其它目录下面吗?部分代码如下:
。。。。。
counterFileName="d:\\mysite\\temp\\test.txt" //getCounterFileName();
objFso=new ActiveXObject("Scripting.FileSystemObject");
objReadTs=objFso.OpenTextFile(counterFileName,1,-1,0);
hitRate=parseInt(objReadTs.ReadLine());
objReadTs.Close();
。。。。。
其中mysite为站点根目录,但在temp下却不能建立test.txt文件,IE6.0提示,“...没有权限...” 代码均为服务端执行



bluesteel

职务:普通成员
等级:1
金币:0.0
发贴:12
#22003/11/24 14:30:45
.....
objFso=scrateObject("Scripting.FileSystemObject");
......
lemontree您好,您的代码基本上是看懂了,加了条件判断该文件是否存在,但问题是scrateObject是个什么组件?没弄明白啊,我试了,IE6.0提示scrateObject未定义,开头大写的我也试了,可能是CreateObject?哪是VBscript吧,但还是不行啊,麻烦您能再详细些吗?



bluesteel

职务:普通成员
等级:1
金币:0.0
发贴:12
#32003/11/24 16:52:45
我感觉不是openTextFile这个函数的事,也不是这个文件是否存在的事,如果文件路径指定为不是站点目录,或者不是操作系统所在的分区下就可以,IE不会报错,唉,真是被弄晕了



bluesteel

职务:普通成员
等级:1
金币:0.0
发贴:12
#42003/11/25 1:04:38
没有权限,还是没有权限,这是为什么呢?什么权限我都给了,仍然
写不进去,希望高手能帮帮我,我真被打败了!



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#52003/11/25 9:42:37
在本调试时简单的解决办法是对 d:\mysite 给 everyone 组加上完全控制权限。搜一下旧帖也可以找到答案。

另外,第一行改为:
counterFileName="d:\mysite\temp\test.txt" //getCounterFileName();



bluesteel

职务:普通成员
等级:1
金币:0.0
发贴:12
#62003/11/25 9:49:34
对了,写错了,第一行是“counterFileName="d:\\mysite\\temp\\test.txt"



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#72003/11/25 10:10:36
晕,你为什么一定要把它写错呢??



我有BLOG了

职务:普通成员
等级:4
金币:16.8
发贴:2209
#82003/11/25 12:11:53
还是没听明白,仔细看看!



bluesteel

职务:普通成员
等级:1
金币:0.0
发贴:12
#92003/11/25 13:21:22
我试了,如果在IIS5.0的管理器中,设置匿名访问的用户为系统管理员时可以写入,可是总不能把让匿名用户当管理啊,如果是geust用户权限的话,则提示:没有权限,唉,真服了。。。。。



bluesteel

职务:普通成员
等级:1
金币:0.0
发贴:12
#102003/11/25 13:39:53
下面是我的源代码,在IIS5.1,WinXP专业版下,本机调试,IE6.0提示:没有权限,其中mysite是站点根目录
<%@LANGUAGE="javascript" CODEPAGE="936"%>
<script language="javascript" type="text/javascript" runat="server">
var counterFileName,objFso,hitRate;
var objReadTs,objWriteTs;
counterFileName="d:\\mysite\\temp\\test3.txt";

objFso=new ActiveXObject("Scripting.FileSystemObject");
    if (objFso.FileExists(counterFileName))
        {
        objReadTs=objFso.OpenTextFile(counterFileName,1,-1,0);
        hitRate=parseInt(objReadTs.ReadLine());
        objReadTs.Close();
        }
    else
        {
        objWriteTs=objFso.CreateTextFile(counterFileName, true);
        objWriteTs.WriteLine("0");
        objWriteTs.Close();
        hitRate=0;
        }
</script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>FSO组件测试</title>
</head>
<body>

</body>
</html>



janlay

职务:管理员
等级:7
金币:28.0
发贴:7244
#112003/11/25 23:06:56
bluesteel在上个帖子中说
引用:
我试了,如果在IIS5.0的管理器中,设置匿名访问的用户为系统管理员时可以写入,可是总不能把让匿名用户当管理啊,如果是geust用户权限的话,则提示:没有权限,唉,真服了。。。。。
你似乎根本就没看或者说没有考虑别人提出的解决办法。。。



bluesteel

职务:普通成员
等级:1
金币:0.0
发贴:12
#122003/11/26 19:27:48
janlay,lemontree,对不起,当时真是糊涂了,笨啊,我以为是在IIS5.0里设置权限。耽误了您们的宝贵时间,再次道歉!



咖啡无味

职务:普通成员
等级:1
金币:0.0
发贴:135
#132003/11/29 15:29:56
参与。