Microsoft VBScript 运行时错误 错误 ✀800a0046✀ 没有权限

2025-02-23 13:20:20
推荐回答(1个)
回答1:

这是权限的问题.
开始->运行->dcomcnfg
找到\\\"Microsoft Excel 应用程序\\\"(这个名称取决于你调用的Object是什么),然后右键->Properties->security把三个权限都给everyone即可,其实第一个Launch & activate即可

这是权限的问题.

还有一个简单的方法,就是找到c:\windows目录中的scrrun.dll文件,设置属性中的安全,加入user组,并给予读取和运行、读取即可。

你也可以把网站放到FAT32分区试一下.因为在NTFS分区,有关于权限问题有一些程序莫明其妙就出错了

试试这个无组件上传吧!用得比较多
文件:upload_5xsoft.inc


<%
dim fo,gPath,gAct,gFileName,gFilePath,g,gRootUrl,gBaseUrl,gPage,gSearch,gEachPage,gFolder,gFilter
dim gPageSize,sTemp,gNoFile
dim sfor(28,2)
gPageSize=100
gRootUrl=Session("webeditbase")
if right(gRootUrl,1)<>"/" then gRootUrl=gRootUrl&"/"
gNoFile=array("asp","aspx") '禁止访问的脚本
set fo=Server.CreateObject("Scripting.FileSystemObject")

sFor(0,0)="txt":sFor(0,1)=1
sFor(1,0)="chm":sFor(1,1)=2
sFor(2,0)="hlp":sFor(2,1)=2
sFor(3,0)="doc":sFor(3,1)=3
sFor(4,0)="pdf":sFor(4,1)=4
sFor(5,0)="gif":sFor(5,1)=6
sFor(6,0)="jpg":sFor(6,1)=6
sFor(7,0)="png":sFor(7,1)=6
sFor(8,0)="bmp":sFor(8,1)=6
sFor(9,0)="asp":sFor(9,1)=7
sFor(10,0)="jsp":sFor(10,1)=7
sFor(11,0)="js" :sFor(11,1)=7
sFor(12,0)="htm":sFor(12,1)=8
sFor(13,0)="html":sFor(13,1)=8
sFor(14,0)="shtml":sFor(14,1)=8
sFor(15,0)="zip":sFor(15,1)=9
sFor(16,0)="rar":sFor(16,1)=9
sFor(17,0)="exe":sFor(17,1)=10
sFor(18,0)="avi":sFor(18,1)=11
sFor(19,0)="mpg":sFor(19,1)=11
sFor(20,0)="ra" :sFor(20,1)=12
sFor(21,0)="ram":sFor(21,1)=12
sFor(22,0)="mid":sFor(22,1)=13
sFor(23,0)="wav":sFor(23,1)=13
sFor(24,0)="mp3":sFor(24,1)=13
sFor(25,0)="asf":sFor(25,1)=11
sFor(26,0)="php":sFor(26,1)=7
sFor(27,0)="php3":sFor(27,1)=7
sFor(28,0)="aspx":sFor(28,1)=7
gFilePath=Request.ServerVariables("SCRIPT_NAME")
gFileName=mid(gFilePath,instrRev(gFilePath,"/")+1)
gFilePath=lcase(left(gFilePath,instrRev(gFilePath,"/")))
gPath=lcase(getVar("path","str",gRootUrl))

if left(gPath,1)<>"/" then gPath=gRootUrl&gPath
gPage=getVar("page","num",1)
gAct=getVar("act","str","")
gFilter=getVar("filter","str","")
setBaseUrl

sub setBaseUrl()
gBaseUrl=gFileName&"?page="&gPage&"&path="&gPath
if gFilter<>"" then gBaseUrl=gBaseUrl&"&filter="&gFilter
end sub

function getVar(theStr,strType,defValue)
select case strType
case "str"
if isEmpty(Request.QueryString(theStr)) or trim(Request.QueryString(theStr))="" then
getVar=defValue
else
getVar=trim(Request.QueryString(theStr))
end if
case "num"
if isEmpty(Request.QueryString(theStr)) or not isNumeric(Request.QueryString(theStr)) then
getVar=defValue
else
getVar=cint(Request.QueryString(theStr))
end if
case else
getStr=defValue
end select
end function

function getForm(theStr,strType,defValue)
select case strType
case "str"
if isEmpty(Request.form(theStr)) or trim(Request.form(theStr))="" then
getForm=defValue
else
getForm=trim(Request.form(theStr))
end if
case "num"
if isEmpty(Request.form(theStr)) or not isNumeric(Request.form(theStr)) then
getForm=defValue
else
getForm=cint(Request.form(theStr))
end if
case else
getForm=defValue
end select
end function

sub HtmEnd(info,isback,dir)
set fo=nothing
set gFolder=nothing
if info<>"" then Response.Write("")
select case isback
case 1
Response.Write("")
case 2
Response.Write("")
end select
Response.write("")
Response.End
end sub

function procIsEdit(sName)
dim i1,i,isEdit
isEdit=Array(1,7,8)
procIsEdit=0
i1=procGetFormat(sName)
for i=0 to ubound(isEdit)
if isEdit(i)=i1 then
procIsEdit=1
exit for
end if
next
end function

function procGetExtName(sName)
procGetExtName=""
if instrRev(sName,".")<1 then exit function
procGetExtName=lcase(mid(sName,instrRev(sName,".")+1))
end function

function procGetFormat(sName)
dim i,str
procGetFormat=0
if instrRev(sName,".")=0 then exit function
str=lcase(mid(sName,instrRev(sName,".")+1))
for i=0 to uBound(sFor,1)
if str=sFor(i,0) then
procGetFormat=sFor(i,1)
exit for
end if
next
end function

function procCheckFile(sName,ischeck)
dim sExt,sPath,i,errorchar
errorchar=array("'","""","\","/","*","?","&","|","<",">")
procCheckFile="ok"
sExt=lcase(procGetExtName(sName))
if gFilter<>"" then
if instr(sName,gFilter)<1 then
procCheckFile="没有权限访问此文件!"
exit function
end if
end if
if Session("webeditrun")="0" then
for i=0 to ubound(gNoFile)
if gNoFile(i)=sExt then
procCheckFile="没有权限访问此文件!"
exit function
end if
next
end if
if ischeck>0 then
sPath=left(sName,instrRev(sName,"/"))
sPath=procCheckDir(sPath,1)
if sPath<>"ok" then
procCheckFile=sPath
exit function
end if
if ischeck=1 and not fo.FileExists(Server.MapPath(sName)) then
procCheckFile="文件没有找到!"
exit function
end if
else
for i=0 to ubound(errorchar)
if instr(sName,errorchar(i))>0 then
procCheckFile="文件名中含有非法字符!"
exit function
end if
next
end if
procCheckFile="ok"
end function

function procCheckDir(sPath,mode)
dim errorchar,i,hd,str
sPath=lcase(sPath)
procCheckDir="ok"
errorchar=array("'","""","\","..","//","*","?","&","|","<",">")
if isempty(sPath) or trim(sPath)="" then
procCheckDir="目录不能为空!"
exit function
end if
for i=0 to ubound(errorchar)
if instr(sPath,errorchar(i))>0 then
procCheckDir="目录名中含有非法字符"
exit function
end if
next

if gFilePath=left(sPath,len(gFilePath)) then
procCheckDir="没有权限访问此目录!"
exit function
end if

if mode=0 then exit function
if not fo.FolderExists(Server.MapPath(sPath)) then
procCheckDir="目录"&sPath&"没有找到!"
exit function
end if

if left(sPath,len(gRootUrl))<>gRootUrl then
procCheckDir="没有权限访问此目录!"
exit Function
end if
end function
'取文件夹的类型
Function GetFileExt(strFilePath)
GetFileExt=Mid(strFilePath,InstrRev(strFilePath,"."))
End Function
%>


上传表单:



上传:



文件upload.asp


<%
formPath="c:\upload\"
set upload=new upload_5xSoft
for each formName in upload.file
set file=upload.file(formName)
if file.FileSize>0 then
response.write "
"&file.FilePath&file.FileName&",大小:"&file.FileSize&" => "&formPath&file.FileName
file.SaveAs Server.mappath(formPath&file.FileName)
end if
next

%>