Server.CreateObject("Excel.Application")的权限问题

错误类型:
   Microsoft VBScript 运行时错误 (0x800A0046)
   没有权限: 'CreateObject'
   /class.asp, 第 86 行
      其中,86行就为 set objExcel=CreateObject("Excel.Application")
错误提示说得很明显是权限问题,可是该在哪里加权限呢?

方法:

1.开始->运行->dcomcnfg ,打开组件服务
2.依次打开 组件服务->计算机->我的电脑->DCOM配置,在右边框加会显示很多组件。
3.找到 Microsoft Excel 应用程序,点右键属性。(如果找不到请使用dcomcnfg -32命令,32位和64位系统的原因)
4.打开属性窗口后,
 A.选择 常规,在 身份验证级别 中选择:调用:  
 B.再选择 安全,把 启动和激活权限,访问权限,配置权限 都使用自定义,然后再逐个编辑权限.
 C.点击 启动和激活权限 后面的编辑,如果在 组或用户名称 中没有Everyone这个用户的,请点添加,然后在 输入对象名称来选择 下面的框中加入Everyone,然后点确定.然后给Everyone这个用户赋权限。  
 其它几个类似,访问权限。  
当然,配置权限是非必须的,可以不设置.
这样就可以使用ASP调用Excel.Application了.
如果在调用其它组件时也出现 没有权限: 'CreateObject' 这样的错误,可以使用相同的方法对相应的组件进行赋权了.

 

------------------------------------------------------------

 

原来用WinXP下开发ASP调用EXCEL,一切正常。但换操作系统为Win7后,提示:
Microsoft Office Excel: 不能取得类 Workbooks 的 Open 属性
代码如下:
fn=server.mapPath("aaa.xls")
set xlApp = server.CreateObject("Excel.Application")
set xlbook = xlApp.WorkBooks.Open(fn)
set xlsheet = xlbook.Worksheets(1)
第三行    提示出错:Microsoft Office Excel: 不能取得类 Workbooks 的 Open 属性

解决方法:
Win7、Windows 2008 Server x64 :
      在C:\Windows\SysWOW64\config\systemprofile\目录下新建“Desktop”目录,权限设置为everyone完全控制;
Win7、Windows 2008 Server x86:
      在C:\Windows\System32\config\systemprofile\目录下新建“Desktop”目录,权限设置为everyone完全控制。

问题解决了。

至于原理及为什么,请致电美国微软公司,或直接致电比尔·盖茨先生。

 

参考:http://diy.haihua.net/Article/zzsj/fwqgl/201304/20130425125006.htm

你可能感兴趣的:(Asp)