网络编程
位置:首页>> 网络编程>> Asp编程>> 解决asp中ADODB.Stream 0x800A0C93 错误

解决asp中ADODB.Stream 0x800A0C93 错误

作者:xujiwei 来源:HotHeart's BLOG 发布时间:2008-01-08 19:28:00 

标签:ADODB,Stream,错误,asp

ADODB.Stream在ASP编程中往往用于无组件上传,并且可以指定文件编码,可以应对各种不同的需要。但是在使用ADODB.Stream过程中,往往会发生这样那样的错误,昨天就碰到了一个0x800A0C93错误,在网上找了半天也没找到解决方法,找到的都是些什么权限的问题,但是在我使用的时候,权限配置并没有问题,因此只好自己琢磨了。

如果要再现这个错误,可以使用以下代码:


<script language="jscript" runat="server">
    var obj = Server.CreateObject("ADODB.Stream");
    obj.Mode =1;
    obj.Type = 2;
    obj.Open();
    obj.LoadFromFile(Server.MapPath("test.asp"));
    Response.Write(obj.Read());
    obj.Close();
</script>


因为在使用ADODB.Stream时,我是想用它来读取文件,所以使用了Mode 1 - Read,然后使用LoadFromFile方法载入文件,但就是这里,出现问题了,运行到LoadFromFile的时候,出现错误,提示“应用程序请求的操作不允许出现在该上下文中 ”,弄了半天也没解决。

去网上找,解决方法大都一样,权限设置不对什么的,解决不了我的问题,只好继续自己琢磨。

又折腾了一会之后,想到,会不会是Mode的问题,因为之前这段代码是用得好好的,但是在放到我写的一个类的Read方法中之后,就把Mode改成1 - Read了,又想到,LoadFromFile方法应该是把所指定的文件内容写入到了ADODB.Stream对象的缓冲区当中,所以需要写权限,当下测试:


<script language="jscript" runat="server">
    var obj = Server.CreateObject("ADODB.Stream");
    obj.Mode = 3;
    obj.Type = 2;
    obj.Open();
    obj.LoadFromFile(Server.MapPath("test.asp"));
    Response.Write(obj.Read());
    obj.Close();
</script>


将Mode改成3 - ReadWrite之后,问题解决。

版权声明:未作特别说明的内容可以转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com