Как подключиться к определенному типу порта в WFC через PowerShell - PullRequest
0 голосов
/ 26 марта 2019

Мне удалось подключиться к моей веб-службе WCF через PowerShell New-WebServiceProxy. Мой веб-сервис содержит 3 типа портов. Моя проблема в том, что я не могу вызывать другие методы, кроме тех, которые указаны в первом типе порта.

Я подключаюсь к WebService с помощью следующей команды:

$ws = New-WebServiceProxy -Uri "http://server/myService.svc?wsdl"

Я могу создать объект любого класса из WebService:

$obj = New-Object($ws.GetType().NameSpace + ".ClassName")

Я могу вызывать методы из первого типа порта в wsdl:

$result = $ws.KontrahentDodaj($obj)

Но я не могу вызвать метод из любого другого типа порта:

$result2 = $ws.FakturyLista($otherObject)

Ошибка - сбой вызова метода, поскольку [] не содержит метод с именем FakturyLista.

Вот фрагмент моего wsdl:

<wsdl:portType name="IKontrahentService">
  <wsdl:operation name="KontrahentDodaj">
      <wsdl:input wsaw:Action="http://tempuri.org/IKontrahentService/KontrahentDodaj" message="tns:IKontrahentService_KontrahentDodaj_InputMessage"/>
      <wsdl:output wsaw:Action="http://tempuri.org/IKontrahentService/KontrahentDodajResponse" message="tns:IKontrahentService_KontrahentDodaj_OutputMessage"/>
  </wsdl:operation>
  <wsdl:operation name="KontrahentZmien">
    <wsdl:input wsaw:Action="http://tempuri.org/IKontrahentService/KontrahentZmien" message="tns:IKontrahentService_KontrahentZmien_InputMessage"/>
    <wsdl:output wsaw:Action="http://tempuri.org/IKontrahentService/KontrahentZmienResponse" message="tns:IKontrahentService_KontrahentZmien_OutputMessage"/>
  </wsdl:operation>
</wsdl:portType>
<wsdl:portType name="IFakturaService">
  <wsdl:operation name="FakturaDodaj">
    <wsdl:input wsaw:Action="http://tempuri.org/IFakturaService/FakturaDodaj" message="tns:IFakturaService_FakturaDodaj_InputMessage"/>
    <wsdl:output wsaw:Action="http://tempuri.org/IFakturaService/FakturaDodajResponse" message="tns:IFakturaService_FakturaDodaj_OutputMessage"/>
  </wsdl:operation>
  <wsdl:operation name="FakturyLista">
    <wsdl:input wsaw:Action="http://tempuri.org/IFakturaService/FakturyLista" message="tns:IFakturaService_FakturyLista_InputMessage"/>
    <wsdl:output wsaw:Action="http://tempuri.org/IFakturaService/FakturyListaResponse" message="tns:IFakturaService_FakturyLista_OutputMessage"/>
  </wsdl:operation>
  <wsdl:operation name="ZalacznikiDoFakturyLista">
    <wsdl:input wsaw:Action="http://tempuri.org/IFakturaService/ZalacznikiDoFakturyLista" message="tns:IFakturaService_ZalacznikiDoFakturyLista_InputMessage"/>
    <wsdl:output wsaw:Action="http://tempuri.org/IFakturaService/ZalacznikiDoFakturyListaResponse" message="tns:IFakturaService_ZalacznikiDoFakturyLista_OutputMessage"/>
  </wsdl:operation>
</wsdl:portType>

EDIT: После использования команды $ws | gm -MemberType Method я получил следующий результат:

    TypeName: Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1SERVICENAME_svc.BasicHttpBinding_IKontrahentService
Name                      MemberType Definition                                                                        
----                      ---------- ----------                                                                        
Abort                     Method     void Abort()                                                                      
BeginKontrahentDodaj      Method     System.IAsyncResult BeginKontrahentDodaj(Microsoft.PowerShell.Commands.NewWebse...
BeginKontrahentZmien      Method     System.IAsyncResult BeginKontrahentZmien(Microsoft.PowerShell.Commands.NewWebse...
CancelAsync               Method     void CancelAsync(System.Object userState)                                         
CreateObjRef              Method     System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)                   
Discover                  Method     void Discover()                                                                   
Dispose                   Method     void Dispose(), void IDisposable.Dispose()                                        
EndKontrahentDodaj        Method     Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceP...
EndKontrahentZmien        Method     Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceP...
Equals                    Method     bool Equals(System.Object obj)                                                    
GetHashCode               Method     int GetHashCode()                                                                 
GetLifetimeService        Method     System.Object GetLifetimeService()                                                
GetType                   Method     type GetType()                                                                    
InitializeLifetimeService Method     System.Object InitializeLifetimeService()                                         
KontrahentDodaj           Method     Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceP...
KontrahentDodajAsync      Method     void KontrahentDodajAsync(Microsoft.PowerShell.Commands.NewWebserviceProxy.Auto...
KontrahentZmien           Method     Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceP...
KontrahentZmienAsync      Method     void KontrahentZmienAsync(Microsoft.PowerShell.Commands.NewWebserviceProxy.Auto...
ToString                  Method     string ToString()   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...