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

在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>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值