2014-10-16 35 views
1

我正在使用primavera webservices(版本6.2.1)从winform应用程序(c#)中的primavera数据库(sqlserver 2008R2)读取数据。我使用http cookie容器验证模式。在我将数据库移动到新服务器之前,我能够成功登录并从primavera数据库读取数据,但是当我移动数据库(使用备份和恢复)时,我仍然可以登录到数据库,但primavera webservices会针对任何请求返回null。Primavera WebServices不返回任何数据

这是我的代码登录:

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是“真实”,它体现在“readdbInstances”正确的数据库实例的信息。

我运行下面的代码从数据库读取一些项目信息:

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

检查您在用户管理员前端使用的凭据,您需要增加模块级别或项目级别的权限。一旦你启用了这些,你应该可以看到一些数据

请问, JK。