动机:
正如我们在项目服务器体系结构中所读到的
PSI中基于SOAP的用于web服务的ASMX接口在Project 2013中仍然可用,但不推荐使用。
原样
我有一些用于与Project交互的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"
...消息失败:
:请求失败,HTTP状态400:错误请求。
以下是IIS日志摘录:
2014-01-05 13:50:41 10.15.43.7 GET /_vti_bin/PSI/ProjectServer.svc-80-XXX.XXX XXX.XXX 401 1 2148074254 125 2014-01-05 13:50:41 10.15.43.7 GET /_vti_bin/PSI/ProjectServer.svc-80-XXX.XXX XXX.XXX 401 2 5 328 2014-01-05 13:50:41 10.15.43.7 GET /_vti_bin/PSI/ProjectServer.svc/ntlm - 80 user_name XXX.XXX XXX.XXX 400 0 0 140 2014-01-05 17:58:33 10.15.43.7 GET /_vti_bin/PSI/ProjectServer.svc-80-XXX.XXX XXX.XXX 401 2 5 312 2014-01-05 17:58:33 10.15.43.7 GET /_vti_bin/PSI/ProjectServer.svc-80-XXX.XXX XXX.XXX 401 1 2148074254 156 2014-01-05 17:58:33 10.15.43.7 GET /_vti_bin/PSI/ProjectServer.svc/ntlm - 80 user_name XXX.XXX XXX.XXX 400 0 0 109
有趣的是,我找不到在PowerShell中使用WCF的任何示例。有人试过这样做吗?有人成功了吗?有人能发布任何片段吗?
发布于 2014-07-29 06:54:56
我只是遇到了和你一样的问题。使用asmx并希望将其移植到WCF服务挂件的Project脚本。
经过一番挖掘,我找到了以下MSDN站点:PSI
在那里你得到了这张照片,在WCF SVC的事情上放了点光:他们在那里,只是你不希望他们在那里.
https://app.box.com/s/tsi7150bgra3rpg4n6yu
我试着给服务部门打电话
我希望这对你也有帮助!
为盒子链接道歉..。还没有足够的声誉来发布图片;)
https://stackoverflow.com/questions/20946792
复制相似问题