首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用P6DB通过P6 Web服务读写数据

如何使用P6DB通过P6 Web服务读写数据
EN

Stack Overflow用户
提问于 2014-07-10 12:17:55
回答 2查看 1.9K关注 0票数 2

我想在P6 web服务中使用基于Cookie的身份验证,下面是两个链接

  1. Services.htm#dotnetexample
  2. Services/ProgrammersGuide/whnjs.htm

现在,我能够使用基于cookie的身份验证登录,但是当我试图继续下一步时,我就被构造了。

就像。我想在P6 DB中创建一个新的活动,我遵循以下步骤。

  1. 登录到系统(创建Cookie容器):我为AuthenticationService.wsdl添加了服务引用 公开无效登录(字符串userName,字符串密码){ AuthenticationServiceWebRef.AuthenticationService authService =新AuthenticationServiceWebRef.AuthenticationService();authService.CookieContainer =新System.Net.CookieContainer();authService.Url = ConfigurationManager.AppSettings"WSAuthenticationService";AuthenticationServiceWebRef.Login loginObj = new AuthenticationServiceWebRef.Login();loginObj.UserName = userName;loginObj.Password =密码;loginObj.DatabaseInstanceId = 1;userName= true;=();=;}
  2. 创建活动:我为ActivityService?wsdl添加了服务引用 登录(WSUsername,WSPassword);ActivityPortBinding apb =新ActivityPortBinding();apb.CookieContainer = cookieContainer;apb.Url =ActivityPortBinding Activity[] acts;acts =新Activity1;Activity = null;for (int i= 0;i< 1;i++) { activity =新活动();activity.ProjectObjectId = iProjectObjectID;activity.ProjectObjectIdSpecified = true;activity.Id = "P6 Test“+ (i + 1);activity.Name = "P6 Test”+ (i + 1);actsi = activity;} int [] arrayObjectIDs= apb.CreateActivities(acts);iRetActivityObjectID =arrayObjectID;

问题在第二步就出现了,我无法创建ActivityPortBinding类。

错误:无法找到类型或命名空间名称'ActivityPortBinding‘(您是缺少了使用指令还是程序集引用?)

  1. 你能帮我找出我在上面的代码哪里出错了吗?
  2. 我是否在步骤1中调用了右Login()?
  3. 在Step2中,我应该使用哪个引用来引用Step2类?

提前谢谢!

EN

回答 2

Stack Overflow用户

发布于 2014-10-15 23:47:23

一旦引用了activity服务,就应该创建一个AcitvityService对象,并将Cookiecon保持器分配给ActivityService对象。如下所示:假设活动服务的web服务文件夹名为ActivityWS,身份验证服务命名为AuthenWS。

代码语言:javascript
复制
    static System.Net.CookieContainer cookieContainer;
    static void Main(string[] args)
    {

        AuthenWS.AuthenticationService authService = new AuthenWS.AuthenticationService();
        authService.CookieContainer = new System.Net.CookieContainer();


        AuthenWS.Login loginObj = new AuthenWS.Login();
        loginObj.UserName = "xxx";
        loginObj.Password = "yyy*";
        loginObj.DatabaseInstanceId = 1;
        loginObj.DatabaseInstanceIdSpecified = true;
        AuthenWS.LoginResponse loginReturn = authService.Login(loginObj);
        if (loginReturn.Return == true) cookieContainer = authService.CookieContainer;
        else {
            Console.WriteLine ("login failed");
            return;
        }

        ActivityWS.ActivityService acService = new ActivityWS.ActivityService;
        acService.CookieContainer = cookieContainer;
        ActivityWS.Activity [] acts;
        acts = new ActivityWS.Activity[1];

        ActivityWS.Activity activity = null;
        for (int i = 0; i < 10; i++)
       {
        activity = new ActivityWS.Activity();
        activity.ProjectObjectId = iProjectObjectID;
        activity.ProjectObjectIdSpecified = true;
        activity.Id = "P6 Test" + (i + 1);
        activity.Name = "P6 Test" + (i + 1);
        acts[i] = activity;
       }

      acService.CreateActivities(acts);    

  }
票数 0
EN

Stack Overflow用户

发布于 2019-10-23 13:58:12

代码语言:javascript
复制
act1.ReadActivities(act)

这一行代码的值为空或数组长度为零。已经加载了P6的数据。在P6端是否有任何设置要执行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24676383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档