我使用PowerShell来部署我们的SSRS报告,但在部署多个报告时遇到了一个问题。
$ uri =“http:///Reportserver2008/reportservice2005.asmx”
$ Proxy = New-WebServiceProxy -Uri $ uri -Namespace SSRS.ReportingService2005 -UseDefaultCredential;
$ Proxy | gm“SetItemDataSources”
返回方法定义:
System.Void SetItemDataSources(string Item,SSRS.ReportingService2005.DataSource [] DataSources)
如果我复制上面的代码,方法定义会在第二次请求时更改 例如
$ uri =“http:///Reportserver2008/reportservice2005.asmx”
$ Proxy = New-WebServiceProxy -Uri $ uri -Namespace SSRS.ReportingService2005 -UseDefaultCredential;
$ Proxy | gm“SetItemDataSources” $ Proxy = New-WebServiceProxy -Uri $ uri -Namespace SSRS.ReportingService2005 -UseDefaultCredential;
$ Proxy | gm“SetItemDataSources”
返回两个不同的方法定义:
- System.Void SetItemDataSources(string Item,SSRS.ReportingService2005.DataSource [] DataSources)
- System.Void SetItemDataSources(string Item,SSRS.ReportingService2005.DataSource [],0juuvurk,Ve ...
醇>
任何人都可以解释为什么定义会改变??? 我在第一次请求后尝试处理$ proxy,Uri没有改变
我想我可能需要拔出$ proxy并且只分配一次。 非常感谢任何见解!
答案 0 :(得分:1)
你的直觉是正确的。创建Web服务的第2代或第3代理可能会带来麻烦,因为代理会被放入自动生成的名称空间中。因此代理两次实际上重做了很多工作,并在内存中创建了两个非常相似的外观类型。
通常有两种方法可以解决此类问题:
希望这有帮助