在ASP.NET中使用COM组件创建编辑Microsoft Word(2003)[配置篇]

来源:互联网 发布:c语言猜纸牌游戏 编辑:程序博客网 时间:2024/05/30 13:41

ASP.NET中使用COM组件创建编辑Microsoft Word(2003)[配置篇]

 

       这两天接到一个任务,其中有一部分功能就是能够利用表单生成一个统一格式的Word文档,并将其保存在服务器的固定目录中。

       为了实现这个功能我在Code Project中看到了一篇相关的文章:

       Microsoft Word Documents from ASP.NET

       在这篇文章中作者详细介绍如何用ASP.NETVS2003环境中引用Word组件,并构造了一个CCWordApp的类来对Word进行操作,其中涵盖了很多基本的操作。对于在今天这个基于够构建开发的我们这些懒人是很好的一个开始。

       于是我就毫不犹豫地使用了这个类,应用到了我的程序中。

       由于我是第一次使用Word Com组件,在使用中出现了很多配置上的问题。还有些代码上的迁移性的问题在ASP.NET中使用COM组件创建编辑Microsoft Word(2003)[原理篇]中阐述。

问题一:

       当我运行时出现如下错误:

拒绝访问。

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

 

异常详细信息: System.UnauthorizedAccessException: 拒绝访问。

 

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

 

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

       解决方法:

              web.config 中的<system.web>节点中添加<identity impersonate="true"/>

              解释详见

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpgenref/html/gngrfIdentitySection.htm

 

问题二:

       当创建一个新的文档或者保存一个修改过的文档时:

       代码是:test.SaveAs (ConfigurationSettings.AppSettings["WordDoc"] + DocName.Text + ".doc");

       出现如下错误:

无法打开宏储存。

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

 

异常详细信息: System.Runtime.InteropServices.COMException: 无法打开宏储存。

       解决方法:

              在运行中输入dcomcnfg

 

       组件服务à计算机à我的电脑àDCOM找到:

 

 

设置启动和激活权限访问权限自定义

 

 

在两项中都要添加MACHINENAME/ASPNET用户

 

 

标识修改为交互式用户

 

 

现在你就可以正常的用ASP.NET创建DOC文档了。

原创粉丝点击