none
Windows 2003 Server X64 中的IIS和ASP问题 RRS feed

  • 问题

  • Windows 2003 Server X64 安装完成,IIS6启动正常,ASP程序能正常运行,但有一个问题是:

    用Adodb。Stream上传文件不正常?测试结果是:

    本地可以上传文件,从WWW服务器上就不能上传,报告Adodb.Straem出错:

     

    ADODB.Stream 错误 '800a0bb9'

    参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。

     

    请问:上述的原因是是么?

    我采取的措施有:开放磁盘安全权限,IIS权限,无济于事。

    求助。

    可以发邮件:zhjb1@263.net

    谢谢!

    2008年4月27日 11:58

答案

  •  zhjb 写:

    我将我的代码写出如下:

    if strFileName<>"" then
     Set objStream = Server.CreateObject("ADODB.Stream")
     objStream.Type =1 ' adTypeBinary
     objStream.Open
     objStream.LoadFromFile strFileName  'strFileName是从表单获得的文件名
     objStream.SaveToFile Server.MapPath(forder0&Mid(strFileName,instrRev(strFileName,"\")+1)),2
     objStream.Close
     下边是打开数据库写文件名到表
     ... ...
    end if

    这段代码一直用的好好的,并且无论什么文件均能传输,直到在X64的系统上报错;报错在第四行实际错误不在第4行。请帮忙分析一下,不胜感谢。

     

    据我研究X64的系统如果利用ANY CPU编译程序将无法访问ADODB, 具体原因没有找到, 建议在X86 cpu模式下编译应该可以正常使用.

    2008年5月4日 1:44
    版主

全部回复

  • 觉得这个问题应该是由于你所用的程序对64位服务器兼容性不好。

     

    2008年4月28日 12:19
    版主
  • 谢谢你的回答。

    但是问题是在本地的IIS上——通过IE浏览器直接用Adodb.stream方法可以上传,但从WAN上——连接到物理服务器并且接入Internet上后,从网站访问上传发生上述问题的。

    仅就这台服务器,曾经为64位系统折腾了1周,后来是解决了,但现在出现的问题不是以前为解决X64与X32兼容的问题了。

    我是采用微软推荐的Adodb.stream方法进行上传的,在XP、Win2K系统上都正常,只是这次在X64上,不知何因?渴望得到推荐意见得到帮助。

    谢谢。

    2008年4月28日 13:58
  •  zhjb 写:

    谢谢你的回答。

    但是问题是在本地的IIS上——通过IE浏览器直接用Adodb.stream方法可以上传,但从WAN上——连接到物理服务器并且接入Internet上后,从网站访问上传发生上述问题的。

    仅就这台服务器,曾经为64位系统折腾了1周,后来是解决了,但现在出现的问题不是以前为解决X64与X32兼容的问题了。

    我是采用微软推荐的Adodb.stream方法进行上传的,在XP、Win2K系统上都正常,只是这次在X64上,不知何因?渴望得到推荐意见得到帮助。

    谢谢。

     

    ADO你可以这样试验,在project中有个any cpu的编译方式,你换成x86再编译,之前遇到过64位Vista中ADO的问题,只有这样才能解决。

    2008年4月29日 1:45
    版主
  • 我将我的代码写出如下:

    if strFileName<>"" then
     Set objStream = Server.CreateObject("ADODB.Stream")
     objStream.Type =1 ' adTypeBinary
     objStream.Open
     objStream.LoadFromFile strFileName  'strFileName是从表单获得的文件名
     objStream.SaveToFile Server.MapPath(forder0&Mid(strFileName,instrRev(strFileName,"\")+1)),2
     objStream.Close
     下边是打开数据库写文件名到表
     ... ...
    end if

    这段代码一直用的好好的,并且无论什么文件均能传输,直到在X64的系统上报错;报错在第四行实际错误不在第4行。请帮忙分析一下,不胜感谢。

    2008年5月1日 9:24
  •  zhjb 写:

    我将我的代码写出如下:

    if strFileName<>"" then
     Set objStream = Server.CreateObject("ADODB.Stream")
     objStream.Type =1 ' adTypeBinary
     objStream.Open
     objStream.LoadFromFile strFileName  'strFileName是从表单获得的文件名
     objStream.SaveToFile Server.MapPath(forder0&Mid(strFileName,instrRev(strFileName,"\")+1)),2
     objStream.Close
     下边是打开数据库写文件名到表
     ... ...
    end if

    这段代码一直用的好好的,并且无论什么文件均能传输,直到在X64的系统上报错;报错在第四行实际错误不在第4行。请帮忙分析一下,不胜感谢。

     

    据我研究X64的系统如果利用ANY CPU编译程序将无法访问ADODB, 具体原因没有找到, 建议在X86 cpu模式下编译应该可以正常使用.

    2008年5月4日 1:44
    版主