当前位置:编程学习 > C#/ASP.NET >>

求助实例化word应用对象时出错了,该如何解决

函数目的是将上传的word文件转换成单一的网页文件,即转换成*.mht的文件。在函数实现过程引用了Word对象类库进行编程,而实例化Word.Application app = new Word.Application(),程序报错了,其错误如下:请这是什么原因引起的,我被折腾了一天了,请大伙帮帮,高分求助。
源错误: 


行 772: protected void ConvertToHtml(string docPath,string htmlPath)
行 773: {
行 774: Word.Application app=new Word.Application();
行 775:
行 776: app.Visible=false;
 

源文件: c:\inetpub\wwwroot\infoplatform\publishnewfile.aspx.cs    行: 774 

堆栈跟踪: 


[COMException (0x8000401a): 因为配置类型不正确,系统无法开始服务器进程。请检查用户名和密码。]
   infoPlatform.publishNewFile.ConvertToHtml(String docPath, String htmlPath) in c:\inetpub\wwwroot\infoplatform\publishnewfile.aspx.cs:774
   infoPlatform.publishNewFile.bt_upload_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\infoplatform\publishnewfile.aspx.cs:268
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain() +1292

 
--------------------编程问答-------------------- 我是没遇到过。。事实上我不用asp。net,下面是我帮你找的答案
解决办法:
1.点击开始/运行,输入Dcomcnfg,按回车键,选择Microsoft Word文档,配置其属性,身份验证级别选“无”,身份标识选“交互式用户”,在“安全性”里,启动和激活权限,和访问权限,配置权限全部自定义并且添加用户everyone。 
2.重装Office,此处是关键,一定要卸载了重装,经典的MS的bug。

注:切记装好后不要再用Dcomcnfg这个命令,否则又会回到错误。

上面顺序不可以颠倒,否则无效






//下面是网上的摘抄,也有一定作用
人工同步IWAM账号在Active Directory、IIS metabase数据库和COM+应用程序中的密码。

具体操作分三步,均需要以管理员身份登录计算机以提供足够的操作权限(IWAM账号以IWAM_MYSERVER为例)。


(一)更改Active Directory中IWAM_MYSERVER账号的密码

因IWAM账号的密码由系统控制,随机产生,我们并不知道是什么,为完成下面两步的密码同步工作,我们必须将IWAM账号的密码设置为一个我们知道的值。

1、选择“开始”->“程序”->“管理工具”->"Active Directory用户和计算机",启动“Active Directory用户和计算机”管理单元。

2、单击“user”,选中右面的“IWAM_MYSERVER”,右击选择“重设密码(T)...”,在跳出的重设密码对方框中给IWAM_MYSERVER设置新的密码,这儿我们设置成“A boutnt2001”(没有引号的),确定,等待密码修改成功。


(二)同步IIS metabase中IWAM_MYSERVER账号的密码

可能因为这项改动太敏感和重要,微软并没有为我们修改IIS metabase中IWAM_MYSERVER账号密码提供一个显式的用户接口,只随IIS5提供了一个管理脚本adsutil.vbs,这个脚本位于 C:\inetpub\adm inscripts子目录下(位置可能会因你安装IIS5时设置的不同而有所变动)。

adsutil.vbs脚本功能强大,参数非常多且用法复杂,这里只提供使用这个脚本修改IWAM_MYSERVER账号密码的方法:

adsutil SET w3svc/WAMUserPass Password

"Password"参数就是要设置的IWAM账号的新的密码。因此我们将IIS metabase中IWAM_MYSERVER账号的密码修改为“Aboutnt2001”的命令就是:

c:\Inetpub\AdminScripts>cscript.exe adsutil.vbs set w3svc/wamuserpass 你的密码

修改成功后,系统会有如下提示:

WAMUserPass: (String) "Aboutnt2001"

//另一个人写的

1、右键我的电脑 -> 管理 -> 本地用户和组,给 IUSR_机器名 和 IWAM_机器名 两个用户设置密码,要一样。

2、开始 -> 运行 -> 打cmd, 
      然后 cd D:\Inetpub\AdminScripts(我的系统在D盘), 
      然后 cscript.exe adsutil.vbs set w3svc/wamuserpass 你的密码, 
      然后 cscript.exe adsutil.vbs set w3svc/anonymoususerpass 你的密码 

     看一下,行了没有?如果还不行,那么 
     cscript.exe synciwam.vbs -v, 
     然后iisreset。
//另一个人写的

(三)同步COM+应用程序所用的IWAM_MYSERVER的密码

同步COM+应用程序所用的IWAM_MYSERVER的密码,我们有两种方式可以选择:一种是使用组件服务MMC管理单元,另一种是使用IWAM账号同步脚本s ynciwam.vbs。


1、使用组件服务MMC管理单元

(1)启动组件服务管理单元:选择“开始”->“运行”->“MMC”,启动管理控制台,打开“添加/删除管理单元”对话框,将“组件服务”管理单元添加上。

(2)找到“组件服务”->“计算机”->“我的电脑”->“COM+应用程序”->“Out-Of-Process Pooled Applications”,右击“Out-Of-Process Pooled Applications”->“属性”。

(3)切换到“Out-Of-Process Pooled Applications”属性对话框的“标志”选项卡。“此应用程序在下列账户下运行”选择中“此用户”会被选中,用户名是“IWAM_MYSERVE R”。这些都是缺省的,不必改动。在下面的“密码”和“确认密码”文本框内输入正确的密码“Aboutnt2001”,确定退出。

(4)系统如果提示“应用程序被一个以上的外部产品创建。你确定要被这些产品支持吗?”时确定即可。

(5)如果我们在IIS中将其它一些Web的“应用程序保护”设置为“高(独立的)”,那么这个WEB所使用的COM+应用程序的IWAM账号密码也需要同步。重复(1 )-(4)步,同步其它相应Out of process application的IWAM账号密码。
--------------------编程问答-------------------- 谢谢你的帮助,上面的方法我已经试过了,可问题还是没有解决,不知出在什么地方,通过上述方法后,是不是系统环境某些参数已经被改变了,无法恢复原值了,导致问题没有解决掉。以前只要重起一下服务就好了,现在重起服务都没有用了。是否需要重新安装服务器进行系统配置了。这个工程的工作量可大了,而且服务器已经运行了10来年了,没有去重装过,这次要重装出现的问题很难预测啊。现在系统没法用,该怎么办???
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,