您的位置:首页 > 编程语言 > ASP

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

2004-09-19 13:38 459 查看
在ASP.NET中使用COM组件创建编辑Microsoft Word(2003)[配置篇]<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

       这两天接到一个任务,其中有一部分功能就是能够利用表单生成一个统一格式的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找到:


 
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
 
设置启动和激活权限访问权限自定义
 



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



 
标识修改为交互式用户
 



 
现在你就可以正常的用ASP.NET创建DOC文档了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐