【问题标题】:calling SmartObjects method in C#在 C# 中调用 SmartObjects 方法
【发布时间】:2023-03-21 12:19:01
【问题描述】:

我在 K2 设计器 中创建了一个 SmartObject,并将 WCF url 添加为服务参考。

下面是代码

UserDetailsSvcClient userDetail = new UserDetailsSvcClient();
userDetail.Open();
UserDetails userDC = new UserDetails();
var userDetailsList = userDetail.UserDetailsSvc_Load(userDC);
userDetail.Close();

userDetailsList 始终保持为null

GetList Smart 方法也没有出现

【问题讨论】:

    标签: c# wcf k2 k2-blackpearl


    【解决方案1】:

    我假设您已经在 K2 服务器上启用了端点。如果没有,请参考以下,Link to Endpoint Creation PS:更改生效前需要重启 K2 Server。

    从代码来看,您似乎正在尝试执行 Load 方法。加载方法需要一个 ID。

    所以对于 UserDetails userDC = new UserDetails();,添加以下内容:

    userDC.Id = 1;
    

    对于GetList,您不需要将UserDetails对象传递给它。

    var userDetailsList = userDetail.UserDetailsSvc_GetList(Null);
    

    【讨论】:

      【解决方案2】:

      问题是我没有授权客户。 我需要添加

      userDetail.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
      

      所以最后代码看起来像这样

      UserDetailsSvcClient userDetail = new UserDetailsSvcClient();
          userDetail.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
      
      userDetail.Open();
      UserDetails userDC = new UserDetails();
      var userDetailsList = userDetail.UserDetailsSvc_Load(userDC);
      userDetail.Close();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-09
        • 2014-10-18
        • 1970-01-01
        • 1970-01-01
        • 2016-08-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多