错误调用ReportingService2005.FindItems();特别是关于BooleanOperatorEnu



在powershell v2中调用ReportingService2005.FindItems()方法有问题

$rs = New-WebServiceProxy -Uri $ReportServerUri -Namespace SSRS.ReportingService2005 -UseDefaultCredential;
$searchCondition = New-Object SSRS.ReportingService2005.SearchCondition
$searchCondition.ConditionSpecified  = $true
$searchCondition.Name = "Name";
$searchCondition.Value = "Sales";
[SSRS.ReportingService2005.SearchCondition[]] $searchConditions = @($searchCondition)
$boolOp = [SSRS.ReportingService2005.BooleanOperatorEnum]::And
#Also tried bellow initialization of enum.
#[SSRS.ReportingService2005.BooleanOperatorEnum] $boolOp = 0
$rs.FindItems("/", $boolOp ,$searchConditions)

执行上面的命令会产生以下错误:

不能转换参数"1",值:"And",对于"FindItems"类型为"SSRS.ReportingService2005 "。BooleanOperatorEnum": "不能将值"And"转换为类型"SSRS.ReportingService2005.BooleanOperatorEnum"。错误:"从'SSRS.ReportingService2005 '强制转换无效。到"ssrs . reportingservice2005 . boolean operatrenum"。"

任何帮助都将非常感激。扎克

确定与我的webproxy中使用的命名空间参数相关的错误。事实证明,我发布的脚本在第一次在会话中执行时成功运行;它在同一个powershell会话中连续执行失败。

发现这篇文章很好地解释了这种情况:http://www.vistax64.com/powershell/273120-bug-when-using-namespace-parameter-new-webserviceproxy.html

$rs = New-WebServiceProxy -Uri $ReportServerUri -UseDefaultCredential; 
$searchCondition = New-Object Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1er_ReportService2005_asmx_WSDL.SearchCondition;
$boolop = New-Object Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1er_ReportService2005_asmx_WSDL.BooleanOperatorEnum;

最新更新