加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C#生成word问题-被呼叫方拒绝接收呼叫

(2011-01-17 18:38:02)
标签:

it

分类: C#and.NET
from:
http://www.cnblogs.com/alonezooo/archive/2009/07/28/1532665.html

在使用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;}
   }

}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有