问题
· 四月 21, 2021

来自英文社区的问题:WS服务的访问权限

大家好,

我正在创建WS做服务器用,但是当我要求WSDL时,提示错误因为找不到类。

我添加了以下说明:

set ^SYS("Security","CSP","AllowClass","MiProyecto.MiClaseWS","%SOAP.WebServiceInfo")=1 
set ^SYS("Security","CSP","AllowClass","MiProyecto.MiClaseWS","%SOAP.WebServiceInvoke")=1

我已经在WS安全配置中创建了一个入口

在“应用程序角色”选项卡中,我配置了%All权限

(图像中的命名空间“Samples”是出于安全原因)

如果我以以下方式调用服务,则http:// localhost:57772 / myproject / ws / MyProject.MiClassWS.cls? WSDL提示以下错误:

Not Found
The requested URL /miproyecto/ws/MiProyecto.MiClaseWS.cls was not found on this server.

但是,另一方面,如果我执行以下命令,它可以正常工作: https:// localhost:57772 / csp / sample / MiProyecto.MiClaseWS.cls?wsdl

csp / sample具有NAMESPACE的默认配置,因此它要求授权(用户名和密码),但是我们不会公开发布这个路径,

可能缺少什么导致找不到类?如何将WS公开部署?

谢谢您的回答

讨论 (1)2
登录或注册以继续

请注意在下面命令中的第四个参数需要以/开始,以及以/结束

set ^SYS("Security","CSP","AllowClass","/miproyecto/ws/","%SOAP.WebServiceInfo")=1 
set ^SYS("Security","CSP","AllowClass","/miproyecto/ws/","%SOAP.WebServiceInvoke")=1

可参考文档:https://docs.intersystems.com/healthconnectlatest/csp/docbook/DocBook.UI...