0

动机:

正如我们在Project Server Architecture中所读到的

PSI 中用于 Web 服务的基于 SOAP 的 ASMX 接口在 Project Server 2013 中仍然可用,但已弃用。

原样

我有一些用于与 Project Server 交互的 PowerShell 客户端片段。与服务器通信的标准方式是 PSI ASMX Web 服务。

成为

我想将这些片段重构为使用 PSI WCF Web 服务的标准。

结果

例如,下面的简单代码可以正常工作:

$Passwd = Get-Content $home\Documents\Password.txt | ConvertTo-SecureString
$Credential = New-Object -typename System.Management.Automation.PsCredential -argumentlist "user_name",$Passwd
$PWAUrl = "http://project_server_name/PWA"
$ProjSvcURL = $PWAUrl + "/_vti_bin/PSI/Project.asmx?wsdl"
$ProjSvcProxy = New-WebServiceProxy -uri $ProjSvcURL -credential $Credential
$projDataSet = $ProjSvcProxy.ReadProjectList()
$projDataSet.Tables[0].Rows.Count

但简单的转换:

$Passwd = Get-Content $home\Documents\Password.txt | ConvertTo-SecureString
$Credential = New-Object -typename System.Management.Automation.PsCredential -argumentlist "user_name",$Passwd
$PWAUrl = "http://project_server_name/PWA"
$ProjSvcURL = $PWAUrl + "/_vti_bin/PSI/ProjectServer.svc"
...

失败并显示以下消息:

New-WebServiceProxy :请求失败,HTTP 状态为 400:错误请求。

这是 IIS 日志摘录:

2014-01-05 13:50:41 10.15.43.7 GET /PWA/_vti_bin/PSI/ProjectServer.svc - 80 - XXX.XXX.XXX.XXX Mozilla/4.0+(兼容;+MSIE+6.0;+MS+Web +服务+客户端+协议+2.0.50727.5472) 401 1 2148074254 125

2014-01-05 13:50:41 10.15.43.7 GET /PWA/_vti_bin/PSI/ProjectServer.svc - 80 - XXX.XXX.XXX.XXX Mozilla/4.0+(兼容;+MSIE+6.0;+MS+Web +服务+客户端+协议+2.0.50727.5472) 401 2 5 328

2014-01-05 13:50:41 10.15.43.7 GET /_vti_bin/PSI/ProjectServer.svc/ntlm - 80 用户名 XXX.XXX.XXX.XXX Mozilla/4.0+(兼容;+MSIE+6.0;+MS+Web +服务+客户端+协议+2.0.50727.5472) 400 0 0 140

2014-01-05 17:58:33 10.15.43.7 GET /PWA/_vti_bin/PSI/ProjectServer.svc - 80 - XXX.XXX.XXX.XXX Mozilla/4.0+(兼容;+MSIE+6.0;+MS+Web +服务+客户端+协议+2.0.50727.5472) 401 2 5 312

2014-01-05 17:58:33 10.15.43.7 GET /PWA/_vti_bin/PSI/ProjectServer.svc - 80 - XXX.XXX.XXX.XXX Mozilla/4.0+(兼容;+MSIE+6.0;+MS+Web +服务+客户端+协议+2.0.50727.5472) 401 1 2148074254 156

2014-01-05 17:58:33 10.15.43.7 GET /_vti_bin/PSI/ProjectServer.svc/ntlm - 80 用户名 XXX.XXX.XXX.XXX Mozilla/4.0+(兼容;+MSIE+6.0;+MS+Web +服务+客户端+协议+2.0.50727.5472) 400 0 0 109

有趣的是,我找不到任何将 WCF PSI 与 PowerShell 结合使用的示例。有没有人尝试过这样做?有人成功吗?任何人都可以发布任何片段吗?

4

1 回答 1

0

我刚遇到和你一样的问题。使用 asmx 并希望将它们移植到 WCF 服务挂件的 Project Server 脚本。

经过一番挖掘,我发现了以下 MSDN 站点: http: //msdn.microsoft.com/en-us/library/office/ms488627 (v=office.15).aspx#pj15_PSIRefOverview_PSI

在那里你得到了这张图片,为整个 WCF SVC 事情提供了一些启示:他们在那里,只是不是你期望他们在的地方......

https://app.box.com/s/tsi7150bgra3rpg4n6yu

我试图打电话给服务 - 它就像一个魅力。

我希望这对你也有帮助!

PS为盒子链接道歉......还没有足够的声誉来发布图片;)

于 2014-07-29T06:54:56.417 回答