您的位置:首页 > 移动开发 > Objective-C

关于asp程序的Server.CreateObject错误解决方法

2006-03-11 11:08 871 查看
在Asp程序CreateObject的时候发生错误,大致内容为Server 对象 错误 ’ASP 0178 : 80070005’ ,这一般发生在较高版本的IIS或者Windows平台上,在部分机器上可能会没有什么问题(后面你会知道原因)...
如果你使用的是中文版,错误信息如下:
Server 对象 错误 ’ASP 0178 : 80070005’
Server.CreateObject 访问错误
/yjst/ExportWorkList.asp,行 62
检查权限时,对 Server.CreateObject 的调用失败。拒绝对此对象的访问。
如果你使用的是英文版,错误信息如下:
Error Type:
Server object, ASP 0178 (0x80070005)
The call to Server.CreateObject failed while checking permissions. Access is denied to this object.
/yjst/ExportWorkList.asp, line 62
解决方法:
我当时是在调用"server.createObject("excel.application")"的时候发生的错误,到很多网站上查,包括微软的方法也尝试了,但是
不行。后来是这样解决的:
开始->运行->dcomcnfg
找到"Microsoft Excel 应用程序"(这个名称取决于你调用的Object是什么),然后右键->Properties->security把三个权限都给everyone即可,其实第一个Launch & activate即可

=============

实验证明,低版本的操作系统没有这个问题,我家里是没有打sp的xp系统,正常运行;我公司服务器Win2000最新补丁包,也没问题;但是公司机器winxp大政府版(升级最新补丁)就不能运行,提示此错误,怎么配置都不能解决问题;另外服务器上必须装excel才能支持Excel.Application对象

我把我运行成功的代码贴出来:
<!--#include file="conn.asp" -->
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>导出Excel表</title>
</head>
<body>
<%
Call Main
Sub Main
Dim rs
On error resume next
set Rs= server.CreateObject ("adodb.recordset")
sql="select * from NC_chusheng"
rs.open sql,conn,1,3

Dim App,Book,Shts,Sht
set App = CreateObject("Excel.Application")

App.DisplayAlerts = false ’不显示警告
App.Application.Visible = false ’不显示界面
’添加Excel表
’App.WorkBooks.add
App.Workbooks.Open(server.mappath("birth.xlt")) ’打开Excel模板
App.Sheets(1).select ’选中工作页
set sheetActive=App.ActiveWorkbook.ActiveSheet
set Book = App.ActiveWorkBook
set Shts = Book.Worksheets
set Sht = Book.Sheets(1)
’Sht.Range("A1:O1").Value = Array("姓名","月份")
Dim r ’行数
r=9 ’从第二行开始写
Dim DeferOctEmp,IsCheck
do while not rs.eof
Sht.Range("A"&r&":N"&r).Value=Array(rs("dwname"), rs("boyz"),rs("girlz"),rs("jihuaneiz"),rs("1boy"),rs("1girl"),rs("1jihuanei"),rs("wanyu"),rs("2boy"),rs("2girl"),rs("2jihuanei"),rs("duoboy"),rs("duogirl"),rs("loubao"))
rs.movenext
r=r+1
loop
rs.close
set rs=nothing
’设置自动列宽
Sht.Range("A1:N"&(r-1)).Columns.AutoFit
’保存Excel文件
Dim ExcelFile
ExcelFile="Excel1.xls"
Book.SaveAs Server.MapPath(ExcelFile)
if err.Number<>0 then
App.Quit
set App = Nothing
exit sub
end if
Book.Save
App.Quit
set App = Nothing
Response.Redirect ExcelFile
End Sub
conn.close
set conn=nothing
%>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐