20230920:更新两个问题:
1、反复使用默认账号注册服务并启动,然后停止并注销服务,在C:\Users目录下会出现很多重复的用户配置文件。这些MwWebAppServer重复的配置文件其实只有两个是正在用的,其他的都是可以直接删除的。因为注销默认账号注册的服务时,这些用户账号其实是被删掉了,所有它们的配置文件也就没用了。
2、如果不是使用默认账号注册服务,而是采用系统管理员的账号(不清楚非系统管理员的非默认账号是不是一样的情况)注册服务,那么当注销服务后再次注册时(不论采用哪个账号),都会出现config文件访问遭到拒绝的错误。此时只需将C:\ProgramData\MathWorks\webapps文件夹删除,之后再次注册服务便不会出现该错误。但是采用非默认账号注册时不会出现问题1的情况,用户账号也不会被删除。
一、服务启动
如果采用matlab目录下的MATLABWebAppServerSetup.exe文件进行安装,比如我的安装文件路径是:
D:\Program Files\MATLAB\R2022a\toolbox\compiler\deploy\win64\MATLABWebAppServerSetup |
可能会出现call to download server failed的错误。
那么你可以使用offline文件夹下的MATLABWebAppServer.zip压缩包来直接启动服务,而不用安装。文件路径为
D:\Program Files\MATLAB\R2022a\toolbox\compiler\deploy\win64\MATLABWebAppServerSetup\offline |
解压压缩包后直接点击MATLABWebAppServer.exe运行。
二、配置
1、注册service时可以使用本地管理员账号(最好是当前的登陆账号),server和worker都使用同一账号注册,可以避免一些权限问题,比如访问文件无权限,调用excel、word COM组件时的拒绝访问等。
另外也可以这样处理:
采用默认的账号直接注册服务: | |
然后点击计算机管理 | |
服务和应用程序项 | |
服务项 | |
找到MATLAB Web Apps和MATLAB Web Apps Launcher两项 | |
分别双击打开属性,将登陆项里的登陆身份改为本地系统账户,确定即可。 |
而后点击start启动服务
这样基本可以解决大部分权限问题,不过安全性变差了。但是使用matlab的webappserver一般也是内网用用吧,安全性是次要的。
2、webapp调用excel的com组件时,将服务器端的组件标识改为“交互式用户”可以防止出现“方法无效”的问题。具体位置:
运行-dcomcnfg-组件服务-计算机-我的电脑-DCOM配置-Microsoft Excel Application-右键属性-标识-选择“交互式用户”-应用确定。