我正在使用primavera webservices(版本6.2.1)从winform应用程序(c#)中的primavera数据库(sqlserver 2008R2)读取数据。我使用http cookie容器身份验证模式。在我将数据库移动到新服务器之前,我能够成功登录并读取primavera数据库中的数据,但是当我移动数据库(使用备份和恢复)时,我仍然可以登录到db,但是对于任何请求,primavera webservices都会返回null。 / p>
这是我登录的代码:
AuthenticationService authService = new AuthenticationService( );
authService.CookieContainer = new System.Net.CookieContainer( );
authService.Url = _P6wsAuthenticationService;
Login loginObj = new Login( );
loginObj.UserName = pv_Username;
loginObj.Password = pv_Password;
loginObj.DatabaseInstanceId = 1;
loginObj.DatabaseInstanceIdSpecified = true;
loginObj.VerboseFaults = true;
loginObj.VerboseFaultsSpecified = true;
LoginResponse loginReturn = authService.Login( loginObj );
ReadDatabaseInstancesResponseDatabaseInstance[] readdbInstances = authService.ReadDatabaseInstances("");
cookieContainer = authService.CookieContainer;
当我运行此代码时,新数据库的loginresponse为“true”,并在“readdbInstances”中显示正确的数据库实例信息。
我运行以下代码从DB中读取一些项目信息:
ProjectPortBinding pbProject = new ProjectPortBinding( );
pbProject.CookieContainer = cookieContainer;
pbProject.Url = _P6wsProjectService;
ReadProjects readProject = new ReadProjects( );
Primavera.Ws.P6.Project.ProjectFieldType[] pfProject = new Primavera.Ws.P6.Project.ProjectFieldType[6];
pfProject[0] = Primavera.Ws.P6.Project.ProjectFieldType.ObjectId;
pfProject[1] = Primavera.Ws.P6.Project.ProjectFieldType.Id;
pfProject[2] = Primavera.Ws.P6.Project.ProjectFieldType.Name;
pfProject[3] = Primavera.Ws.P6.Project.ProjectFieldType.Status;
pfProject[4] = Primavera.Ws.P6.Project.ProjectFieldType.StartDate;
pfProject[5] = Primavera.Ws.P6.Project.ProjectFieldType.FinishDate;
readProject.Filter = pv_ProjectList.Equals( String.Empty ) ? String.Empty : "Id IN (" + pv_ProjectList + ")";
readProject.Field = pfProject;
Primavera.Ws.P6.Project.Project[] aProject = pbProject.ReadProjects( readProject );
它将请求发送到服务器,但我收到的消息不包含任何项目。
在我移动数据库之前,我能够使用相同的代码读取数据。我使用其数据库配置更改了primavera Web服务的数据库实例,我确信它连接到正确的数据库,我只是混淆为什么它无法从中读取数据。当我使用primavera客户端模块连接和读取新数据库中的数据时,它工作正常,我可以看到我的所有项目。
答案 0 :(得分:0)
检查您在用户管理员前端使用的凭据,您需要在模块级别或项目级别增加权限。启用后,您应该看到一些数据。
请, JK。