解决Com调用AutoCAD"被呼叫方拒绝接收呼叫"
2013-04-25 14:53
691 查看
在用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”,右击属性,进入“标识”选项卡,将默认的用户账号由“启动用户”改到“交互式用户”。如图所示。
关键代码如下:
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”,右击属性,进入“标识”选项卡,将默认的用户账号由“启动用户”改到“交互式用户”。如图所示。
相关文章推荐
- 解决Com调用AutoCAD"被呼叫方拒绝接收呼叫"
- IDE问题 "被呼叫方拒绝接收呼叫。 (异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED))"
- C# AutoCAD 二次开发相关问题 "被呼叫方拒绝接收呼叫"
- IDE问题 "被呼叫方拒绝接收呼叫。 (异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED))"
- "对COM 组件的调用返回了错误 HRESULT E_FAIL"的解决方法
- 求助改善Delphi调用olevariant出现“被呼叫方拒绝接收呼叫”
- ARM开发板上iconv_open("utf-8", "gb2312") 调用失败的解决方法
- 无法打开物理文件 "X.mdf"。操作系统错误 5:"5(拒绝访问。)"。 (Microsoft SQL Server,错误: 5120)解决
- 对路径"xxxxx"的访问被拒绝(文件操作权限)的解决方法
- 对"对DllRegisterServer的调用失败,错误代码为0x8007005"的解决办法
- JAVA学习13_line.split("")的使用和解决ES接收数据不全的问题
- 风声无组件上传出现"无效的过程调用或参数instr"的解决办法
- 错误处理(一)—— 被呼叫方拒绝接收呼叫。 (异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED))
- "对COM 组件的调用返回了错误 HRESULT E_FAIL"的解决方法
- 启动minicom时出现错误"Device /dev/ttyS0 is locked minicom"的解决办法
- 关于js调用ocx控件报错"对象不支持此属性或方法"的解决方法
- 发送邮件时遇到mail包冲突异常Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 解决方法
- 无法打开物理文件 "X.mdf"。操作系统错误 5:"5(拒绝访问。)"。 (Microsoft SQL Server,错误: 5120)解决
- 解决ognl.MethodFailedException: Method "list" failed for object com.szy.ResourceAction的问题
- ARM开发板上iconv_open("utf-8", "gb2312") 调用失败的解决方法