Изменения определения метода веб-сервиса Powershell - PullRequest
0 голосов
/ 20 июня 2011

Я использую PowerShell для развертывания наших отчетов SSRS, но столкнулся с проблемой при развертывании нескольких отчетов.

$ uri = "http: ///Reportserver2008/reportservice2005.asmx"

$ Proxy = New-WebServiceProxy -Uri $ uri -Namespace SSRS.ReportingService2005 -UseDefaultCredential;

$ Proxy |gm "SetItemDataSources"

, который возвращает определение метода:

System.Void SetItemDataSources (строка 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"

Возвращает два разных определения метода:

  1. System.Void SetItemDataSources (строка Item, SSRS.ReportingService2005.DataSource [] DataSources)
  2. System.Void SetItemDataSources (строка Item, SSRS.ReportingService2005.DataSource [], 0juuvurk, Ve ...

Может кто-нибудь объяснить, почему меняется определение ??? У меня естьпопытался избавиться от $ proxy после первого запроса, Uri не изменился

Я думаю, что мне, возможно, придется извлечь $ proxy и назначить его только один раз. Любое понимание очень ценится!

1 Ответ

1 голос
/ 22 июня 2011

Вы правы со своими инстинктами. Создание 2-го или 3-го прокси веб-сервисов может вызвать проблемы, потому что прокси помещаются в автоматически генерируемые пространства имен. Таким образом, двойное проксирование фактически выполняет большую часть работы и создает два очень похожих вида в памяти.

Как правило, есть два способа решения этой проблемы:

  • Используйте параметр -Namespace для принудительного помещения объекта в пространство имен.
  • Используйте $ proxy.GetType (). Пространство имен, чтобы найти автоматически сгенерированный базовый тип

Надеюсь, это поможет

...