日期:2014-05-17  浏览次数:20503 次

在线等,导出word,excel的问题(权限)
环境 windows server 2008 IIS7.0 VS20005

写了一个导出word,excel的程序,用VS运行的时候没有任何问题,放到IIS下运行,就会报错
错误信息是:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005(具体错误信息下面给出)

在网上查了查,大部分说的是在组建服务中修改权限:Microsoft Excel Application -"标识"标签,选择"交互式用户",
1,标识----交互式用户; 

2,安全----访问权限----自定义----编辑----填加一个"NETWORKSERVICE"用户,赋予"本地访问"权限.

3,安全----启动和激活----自定义----编辑----填加一个"NETWORKSERVICE"用户,赋予"本地启动"和"本地激活"权限。

我按照这个做了,然后还增加了Internet来宾帐户,并设置了相应的权限 ,文件夹的权限是:NETWORKSERVICE和Internet来宾帐户都赋予了完全控制权限,但还是报那个错误。

也有人说webconfig里添加<identity impersonate="true" userName="****" password="*****"/>结果还是那个错误,当我填写管理员帐号和密码时,VS2005会报错:未能开始监视对D:\***\**\global.asax的更改,但是换个密码(错误的密码)就不会报错(闷,不知道是为什么)

知道的朋友帮忙解决下,谢谢大家


错误信息:

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。 

ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。 

要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

源错误: 


行 64: object fileName = (Object)file;
行 65: 
行 66: Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
行 67: Microsoft.Office.Interop.Word.Document myWord = wordApp.Documents.Open(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
行 68: 
 




------解决方案--------------------
参考:
http://hi.baidu.com/ilovehaley/blog/item/a28cb234d8b161335bb5f5be.html
------解决方案--------------------
用Msxml2.ServerXMLHTTP替换掉Msxml2.XMLHTTP,问题成功解决
------解决方案--------------------
若要解決這個錯誤,請執行下列步驟:
如果要判斷如果上面的索引鍵存在,使用 [Regedit.exe 或 Regedt32.exe]。 如果索引鍵不存在,新增。
若要判斷金鑰的使用權限是否太嚴格中,請開啟在 Regedt32.exe,並選取登錄機碼。 在 [ 安全性 ] 功能表中上, 按一下 [檢視存取控制清單,金鑰的 使用權限 ]。 驗證的使用者至少必須有 「 讀取 」 權限登錄機碼。

附註 : [使用者帳戶由網站的 MSADC 虛擬資料夾的驗證方法設定。 如果您使用匿名存取,使用者帳戶是 IUSR_ computername 帳戶]。
重新啟動您的 Web 服務。