技术无极限

Nio的技术空间
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

owc控件不能在win server 2003 64位中使用

Posted on 2009-01-15 18:53  Nio  阅读(1558)  评论(2编辑  收藏  举报

owc控件不能在win server 2003 64位中使用,具体错误如下.

着急: owc控件不能在win server 2003 64位中使用,具体错误如下.但是在32位下是可以使用的.


“/WFQH”应用程序中的服务器错误。
--------------------------------------------------------------------------------

检索 COM 类工厂中 CLSID 为 {0002E546-0000-0000-C000-000000000046} 的组件时失败,原因是出现以

下错误: 80040154。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码

中导致错误的出处的详细信息。

异常详细信息: System.Runtime.InteropServices.COMException: 检索 COM 类工厂中 CLSID 为

{0002E546-0000-0000-C000-000000000046}
的组件时失败,原因是出现以下错误: 80040154。

源错误:


行 65: string strValue = ""; // "9" + '\t' + "8" + '\t' + "4" + '\t'+"10" + '\t'

+ "12" + '\t' + "6" + '\t';
行 66: //声明对象
行 67: ChartSpace ThisChart = new ChartSpaceClass();
行 68: ChChart ThisChChart = ThisChart.Charts.Add(0);
行 69: ChSeries ThisChSeries = ThisChChart.SeriesCollection.Add(0);


源文件: d:\WebApp\WFQH\Comm\Rpt\UCGraphics.ascx.cs 行: 67

堆栈跟踪:


[COMException (0x80040154): 检索 COM 类工厂中 CLSID 为 {0002E546-0000-0000-C000-

000000000046} 的组件时失败,原因是出现以下错误: 80040154。]
BP.Web.UC.UCGraphics.GenerChart(DataTable dt, String colOfGroupField, String

colOfGroupName, String colOfNumField, String colOfNumName, String title, Int32 chartHeight,

Int32 chartWidth, ChartType ct) in d:\WebApp\WFQH\Comm\Rpt\UCGraphics.ascx.cs:67
BP.Web.Comm.GroupEnsNum.SetDGDataV2(Int32 myPageIdx, Boolean isSplatePage) in

d:\WebApp\WFQH\Comm\GroupEnsMNum.aspx.cs:1266
BP.Web.Comm.GroupEnsNum.BPToolBar1_ButtonClick(Object sender, EventArgs e) in

d:\WebApp\WFQH\Comm\GroupEnsMNum.aspx.cs:1762
Microsoft.Web.UI.WebControls.Toolbar.OnButtonClick(Object sender, EventArgs e) +23
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String

eventArgument) +32
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean

includeStagesAfterAsyncPoint) +3215

解决办法:

你这个是权限的问题,和asp.net生成word的问题一样,只是CID表示程序不同。还有一种解决方法是重装一遍组件,原因见资料引用。

一般解决方法如下:

excel 和word的解决方法是:

1:在服务器上安装office软件.

2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"

3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"

4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框(你是owc,选择你的那个CID)

5:点击"标识"标签,选择"交互式用户"

6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加

一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.

7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK

SERVICE"用户,然后赋予"本地访问"权限.

这样,我们便配置好了相应的Excel的DCOM权限.

注意:这是在WIN2003上配置的,在2000上,可能是配置ASPNET用户
参考资料:http://blog.csdn.net/talefox/archive/2008/03/13/2178688.aspx