zoukankan      html  css  js  c++  java
  • 解决Com调用AutoCAD"被呼叫方拒绝接收呼叫"

    在用Com调用AutoCAD的代码试,一般第一次启动时会出现"被呼叫方拒绝接收呼叫,异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED)"的错误.

    关键代码如下:

                try
                {
                    cadApp = (Autodesk.AutoCAD.Interop.AcadApplication)Marshal.GetActiveObject(programID);
                }
                catch
                {
                    try
                    {
                        Type sType = Type.GetTypeFromProgID(programID);
                        cadApp = (Autodesk.AutoCAD.Interop.AcadApplication)Activator.CreateInstance(sType, true);
                        cadApp.Visible = true;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Cannot open AutoCAD. \n Error message : " + ex.Message);
                    }
                }
    
                if (cadApp != null)
                {
                    cadApp.Visible = true;
                    cadApp.ActiveDocument.SendCommand("filedia\r0\r");
                    cadApp.ActiveDocument.SendCommand("netload\r" + Application.StartupPath + "\\myplugin.dll\r");
                    cadApp.ActiveDocument.SendCommand("filedia\r1\r");
                    cadApp.Documents.Open(strDWG, Type.Missing, Type.Missing);
                }

    解决如下:

    1.右击“我的电脑”,点击“管理”,进入服务,确保
    Distributed Transaction Coordinator和Remote Procedure Call (RPC) 以及Security Accounts Manager三个服务都是已启动状态,如果没有启动,启动它。

    2.在运行里输入"dcomcnfg",进入“组件服务”,点击“控制台根目录”下的“组件服务”,进入到“计算机”下的“我的电脑”目录,进入“DCOM”配置,找到“AutoCAD Application”,右击属性,进入“标识”选项卡,将默认的用户账号由“启动用户”改到“交互式用户”。如图所示。

    高调做事,低调做人~!
  • 相关阅读:
    Mac OS X 下安装Raspbian系统
    Tiny4412 uboot Makefile 分析
    Tiny4412增强版底板串口电路与设置
    为Debian搞定Mercury MW150US无线网卡驱动
    树莓派的启动过程
    xml格式转换为Bean
    j2ee之hibernate工具类
    验证码代码
    j2ee之AJAX的二级联动
    j2ee之原生AJAX
  • 原文地址:https://www.cnblogs.com/514687800/p/3043565.html
Copyright © 2011-2022 走看看