上一篇:ASP中的函数说明 >>
FileCopy
下面是第一部分,和FileCopy相关的一点讨论。
一、问题本身
ASP程序在部署在Interpub目录下,目录结构大概如下——
############################################
Interpub
---------ABC(我们的ASP目录)
----------*.asp/*.htm/*.asa
----------doc
----------docbase
----------(其它子目录)
#############################################
ASP程序调用一个叫ABC.dll的动态链接库,执行一组操作。其中一个动作是使用FileCopy函数把一个Word文件从docbase目录复制到doc目录。
FileCopy strSrc, strrDis
每次执行到这个语句的时候都出现错误号为75的VB运行时错误(“路径无效”)。其实,docbase里的Word文件路径和doc目录都是存在且正确的,但不知道为什么这一步却执行不过去。
我修改ABC.dll代码,做了两个实验——
(1)我把FileCopy的第二个参数改为InterPub目录外的一个位置C:\temp
FileCopy strSrc,"C:\temp\filename.doc"
运行结果:正确。可以把文件复制到"C:\temp"。
(2)我在ABC目录新建一个子目录test,执行下列动作
FileCopy strSrc,"C:\test\filename.doc"
运行结果:不正确。错误号仍然是75(“路径无效”)。
此外,还有其他几点值得注意——
(1)在ASP文件里直接使用VBScript脚本执行FileCopy动作是可以的;
(2)我们的服务器是IIS 5.0。若把程序放在IIS 4.0下却可以顺利执行。
(3)同事们说若是授权方面存在问题,可以考虑使用dcomcnfg命令进行配置。
二、解决方法
修改doc子目录的访问权限即可解决这个问题。
第一个办法:在doc目录的属性页里找到“security” page,向“everyone”用户授予“change/write”权限;
第二个办法:在doc目录的属性页里找到“security” page,添加一个“IUSER”用户,并向其授予“change/write”权限。
第三个办法:把doc目录迁移到Interpub目录外边去。这样,“everyone”用户默认拥有“change/write”权限。
三、原因
在NT下,即使在wwwroot下,everyone用户仍然有“full control”权限;
在2000下,一旦将目录复制到wwwroot下,everyone用户的权限立刻变为“read/run”。
这就是导致FileCopy问题的根源吧。
我这个时候才发觉,在我们这个小小的升级项目调查过程中必须把“操作系统差异”作为重要任务。
下一篇:事务处理 >>
相关文章:
- · asp模块化分页
- · ASP分页显示详论
- · Iframe高度自适应
- · 正则表达式大全
- · WMI学习
- · Session 详解
- · 关于交叉报表的动态实现
- · 页面执行需要长时间时向用户的提示信息
- · 使用Repeater模板 二
- · Sucess On a Horse
- · 校友通讯资料管理系统(1)
- · ASP实现图片上存
- · 提高网站在搜索引擎中的排名
- · 关于无组上传的老话题
- · 如何实现图片的随机生成与显示
- · 怎么把webapplication打包成安装文件
- · 为treeview添加客户端事件
- · 如何让不同的语言版本显示正确的中文?
- · 线程的处理(2)
- · 线程的处理(1)
- · 再谈ASP防止SQL Injection漏洞的问题
- · 用asp编写文档搜索页面
- · ASP中使用SQL语句
- · 利用反射动态调用类成员
- · Asp.net组件设计浅论
- · 越过调试这道槛——ASP.NET无法调试问题剖析
- · 一段用ASP查看ASP文件源码的程序.
- · ASP显示在线人数
- · Asp.net多页面间保留状态
- · 简单ASP计数器
- · 使用 HttpContext.RewritePath 来配合 Server.Transfer/Execute
- · SQLSERVER扩展存储过程XP_CMDSHELL的简单应用
- · SQL Server 存储过程的分页
- · 经典的asp整理
- · Access中分组统计的实例
- · 一段分页程序实例代码!
- · 从asp到asp.net之快速转型
- · ASP升级程序
