NET操作word问题,被呼叫方拒绝接收呼叫

在使用word作为模板绑定数据,生成报表时,在循环中易出现错误:
 foreach (FormField bm0 in _doc.FormFields)
{...
bm0.Range.Text=bandvalue;
}
易出现异常:
System.Runtime.InteropServices.COMException (0x80010001): 被呼叫方拒绝接收呼叫。
(Exception from HRESULT: 0x80010001 (RPC_E_CALL_REJECTED))
原因可能为:
1.目录权限
2.操作频繁
若是权限问题,按如下步骤:
在运行里面输入:
dcomcnfg

在“服务”里找到这三个服务,都去启动

Distributed Transaction Coordinator

Remote Procedure Call (RPC)

Security Accounts Manager

如果:Distributed Transaction Coordinator 启动不了
就先在运行里面输入:
msdtc -resetlog

然后在开启:Distributed Transaction Coordinator


接着关闭服务组件窗体 ,并重新打开,这个时候每个组建就有属性了
然后:在命令行中输入:dcomcnfg,会显示出“组件服务”管理器
2、打开“组件服务->计算机->我的电脑->DCOM 配置”,找到“Microsoft Word文档”,单击右键,选择“属性”
在“属性”对话框中单击“标识”选项卡,选择“交互式用户””,关闭“组件服务”管理器。

若是操作频繁,则需要在代码中加入延时:
int m_iErrCnt=0;
while( true )
{
      try
    {
     bm0.Range.Text=bandvalue;
     break;
    }
    catch(SystemException err)
   {
            m_iErrCnt++;
           if( m_iErrCnt<10 )
          {
          System.Threading.Thread.Sleep(1000);
            }
          else
          { throw err;}
   }

}

 

消息筛选器显示应用程序正在使用中

1、 在命令行中输入:dcomcnfg,会显示出“组件服务”管理器
2、打开“组件服务->计算机->我的电脑->DCOM 配置”,找到“Microsoft Word文档”,单击右键,选择“属性”
3、在“属性”对话框中单击“标识”选项卡,选择“交互式用户”。
4、
单击"安全"选项卡,分别在"启动和激活权限"和"访问权限"组中选中"自定义",然后
自定义->编辑->
添加EveryOne用户
5、打开Word把“宏”安全性调为“低”


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值