我如何利用MATLAB在远程机器上作为分布式COM (DCOM)服务器?

28次浏览(最近30天)
我有两台机器,一台客户端机器和一台服务器机器通过网络连接,都安装了MATLAB。对于这个特定的情况,客户端机器有64位的MATLAB 7.13 (R2011b),服务器机器有32位的MATLAB 7.12 (R2011a)。
我想使用COM接口(当应用程序在远程机器上时称为DCOM)从客户端MATLAB调用并利用服务器MATLAB。
我该怎么做呢?

接受的答案

MathWorks支金宝app持团队
在使用DCOM接口建立2个MATLAB进程之间的通信之前,请注意,大多数用例使用常规的COM接口更容易解决,在同一台机器上运行的2个MATLAB进程彼此通信。
如果需要在两个独立的机器上运行MATLAB进程,请遵循下面的说明。
可以通过DCOM在远程机器上操作MATLAB。要做到这一点,有三个必要条件:
1.必须在这两台机器上适当地设置DCOM安全设置。要做到这一点,请遵循以下步骤:
a.打开开始菜单。
b.搜索“dcomcnfg”,不按enter键。
c.右键单击弹出的“dcomcnfg”,以管理员身份运行。这将打开“组件服务”窗口。
d.在左侧窗格展开“Component Services”。
e。扩大“电脑”。
f.右键单击“我的电脑”,进入“属性”。
g.打开“默认属性”选项卡。
h.确保勾选了“在此计算机上启用分布式COM”。
i.确保“默认认证级别”为“连接”。
j.确保“默认模拟级别”为“识别”。
k.打开“COM Security”选项卡。
l.在“Access Permissions”一节中,打开“Edit Defaults…”的对话框,并确保管理员具有本地访问权限和远程访问权限。
m.在“启动和激活权限”部分,打开“编辑默认设置…”对话框,并确保管理员拥有所有允许的权限。
n.在所有对话框中点击OK。
o.在“组件服务”窗口的左侧窗格,展开“我的电脑”,然后展开“DCOM配置”。
p.搜索“Matlab”。应用程序(版本x)', x是你想使用的版本(可以是不同的客户端和服务器),右键单击并打开'属性'。
q.在“General”选项卡下,确保“Authentication Level”为“Default”。
r.在“安全”选项卡下,确保“启动和激活权限”和“访问权限”设置为“使用默认”。
在“身份”选项卡下,设置“启动用户”。
t.单击“确定”并关闭“组件服务”窗口。
在这两台机器上重复上面的步骤。
2.用户需要作为自己登录到客户机和服务器机器,并且在这两台机器上都需要具有Administrator权限。
3.在这两台机器上,用户必须在其名称下拥有MATLAB许可证。换句话说,许可证必须是能够识别用户的某种形式的命名用户许可证。因此,试用或指定的计算机许可证不工作。如果您有可用的许可证,但在目标机器上没有,那么您可以在适当的指定用户许可证下重新激活MATLAB安装。
一旦满足以上要求,您可以通过在客户端输入以下命令,从客户端MATLAB启动服务器MATLAB:
matlabHandle = actxserver (“Matlab.Application.7.12”“ServerComputerName”);
其中ServerComputerName是表示服务器计算机名或IP地址的字符串。请注意,如果您在客户端机器上安装了多个MATLAB,服务器可能会挑选任何可用的满足版本信息的MATLAB。例如,如果你指定ProgID为'Matlab。应用程序',它可以选择任何可用的MATLAB。如果ProgID是' MATLAB . application .7.12',它将选择64位或32位版本的MATLAB 7.12 (R2011a)。除了卸载额外的MATLAB以便只存在一个版本之外,没有特定的方法来设置所选的架构。
与本地机器上的COM交互不同,在客户端机器上注册特定的MATLAB作为自动化服务器与DCOM无关。请注意,与本地COM不同的是,远程DCOM不会在客户机上启动可见会话。
故障排除错误:
1.
错误使用函数宏指令
服务器创建失败:拒绝访问。
可能的原因:
a. DCOM安全设置错误。
b.用户在两台机器上都没有管理员权限。
2.
错误使用函数宏指令
服务器创建失败:试图对已标记为删除的注册表项进行非法操作。
可能的原因:
用户没有登录到客户端计算机。
3.
错误使用函数宏指令
服务器Creation Failed:服务器执行失败
可能的原因:
客户端MATLAB没有正确的指定用户许可证。
1评论
前来Sleiman
前来Sleiman 2016年3月23日
对于解决问题#3,什么是“正确的指定用户许可证”?我被告知actxserver没有绑定到PCT,执行此操作需要什么许可证或工具箱?

登录评论。

答案(1)

迈克尔
迈克尔 2014年8月22日
你好,
如果用户不是远程机器上的管理员,有没有办法做到这一点?
谢谢!
1评论
Enkh
Enkh 2015年6月17日
如果您将DCOM安全设置中的适当权限授予特定用户,则应该是可能的。上面的示例只是针对管理员的,因为它只需要对默认设置进行最小的更改。

登录评论。

下载188bet金宝搏


释放

R2012a

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!