Question [Resolu] Erreur appel de methode

Plus d'informations
il y a 4 ans 10 mois #29012 par africanism78
Bonjour a tous,

voila je suis novice en powershell.
je me suis fait un petit script qui va lire et faire une boucle sur la lecture d'un fichier, jusque la pas de pb, le soucis c'est qu'il me sort une erreur sur un appel de methode qui n'existe pas alors que le methode existe.

Échec lors de l’appel de la méthode, car [System.String] ne contient pas de méthode nommée « GetInfosCompte »

pour exemple car ca me fait la meme chose sur les 3 qui ce trouve dans le fichier.

ci-joint le code ps1
[code:1]#On récupère le fichier XML


[xml]$xmlfile=Get-Content c:\prive\method.xml

#On boucle sur chaque ligne présente en XML
foreach($web in $xmlfile.webs.web){
$name=$web.nom
$lien=$web.path
$method=$web.method
$method2=$web.method2

$IIS = New-WebServiceProxy -UseDefaultCredential -Uri $lien.$method($method2)


$timeTaken = Measure-Command -Expression {
$site = New-WebServiceProxy -UseDefaultCredential -Uri $lien
}
$milliseconds = $timeTaken.TotalMilliseconds

$milliseconds = [Math]::Round($milliseconds, 1)
$Metrics =@{
\"CompteId\" = $IIS
\"Method\"= $method
\"Etat\" = [int]'100'
\"Site\" = $lien
\"tempdereponse\" = [int] $milliseconds
}



Write-Influx -Measure $name -Tags @{Server=$env:COMPUTERNAME} -Metrics $Metrics -Database SOAP -server http://prdparsup21:8086 -Verbose
write-host \"$method\"
Write-Host \"$method2\"
write-host \"$IIS\"
}
[/code:1]

et voici le fichier xml
[code:1]<webs>
<web>
<nom>x2Service.svc?wsdl</nom>
<path>http://dnsindintrawsx2services/x2Service.svc?wsdl</path>
<method>GetInfosCompte</method>
<method2>200232</method2>
</web>
<web>
<nom>x2.svc?wsdl</nom>
<path>http://dnsindintrawsx2/x2.svc?wsdl</path>
<method>GetIntervenant</method>
<method2>200232</method2>
</web>
<web>
<nom>x2FacadeService.svc?wsdl</nom>
<path>http://dnsindextrawsx2FacadeService/x2FacadeService.svc?wsdl</path>
<method>GetInfosDeclaration</method>
<method2>200232,200232</method2>
</web>
</webs>
[/code:1]

je vous avouerais que je bloque si quelqu'un a une idée.

Merci a tous.

Message édité par: africanism78, à: 12/06/19 11:31<br><br>Message édité par: africanism78, à: 17/06/19 07:24

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 10 mois #29013 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Erreur appel de methode
Salut,
à priori, là où je suis je ne peux tester ce type d'accès, la création du proxy ne demande pas de nom de méthode, c'est l'objet que l'on récupère qui les porte.

J'ai qq chose comme :
[code:1]$IIs = New-WebServiceProxy -UseDefaultCredential -Uri http://dnsindintrawsx2services/x2Service.svc?wsdl.GetInfosCompte(200232)[/code:1]
essai:
[code:1]$IIs = New-WebServiceProxy -UseDefaultCredential -Uri http://dnsindintrawsx2services/x2Service.svc?wsdl[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 10 mois #29014 par africanism78
Réponse de africanism78 sur le sujet Re:Erreur appel de methode
merci pour ta reponse

j'ai un resultat
mais ma question c'est comment lui faire repondre a une methode

[code:1]SoapVersion : Default
AllowAutoRedirect : False
CookieContainer :
ClientCertificates : {}
EnableDecompression : False
UserAgent : Mozilla/4.0 (compatible; MSIE 6.0; MS Web Services Client Protocol 4.0.30319.42000)
Proxy :
UnsafeAuthenticatedConnectionSharing : False
Credentials : System.Net.SystemNetworkCredential
UseDefaultCredentials : True
ConnectionGroupName :
PreAuthenticate : False
Url : http://dnsindintrawsx2services/x2Service.svc
RequestEncoding :
Timeout : 100000
Site :
Container : [/code:1]<br><br>Message édité par: africanism78, à: 12/06/19 13:45

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 10 mois #29016 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Erreur appel de methode
Essaie :
[code:1]
$IIS.GetInfosCompte(200232)
[/code:1]
Tu peux aussi vérifier les méthodes disponibles avec :
[code:1]
$ISS|Get-member
[/code:1]

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 10 mois #29018 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Erreur appel de methode
Un test avec un service sur le net qui répond :
[code:1]
$test= New-WebServiceProxy -Uri www.dneonline.com/calculator.asmx?WSDL

$Test|Get-member -MemberType Method
[/code:1]
Si j'utilise une uri + un nom de méthode:
[code:1]
$test= New-WebServiceProxy -Uri www.dneonline.com/calculator.asmx?WSDL.divide(10,2)
New-WebServiceProxy : Impossible de convertir «System.Object[]» en type «System.String», requis par le paramètre «Class
». La méthode spécifiée n'est pas prise en charge.
[/code:1]
:)

[edit]
Un appel de méthode :
[code:1]
$test.Divide(10,2)
#5[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 12/06/19 17:11

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 4 ans 10 mois #29020 par africanism78
Réponse de africanism78 sur le sujet Re:Erreur appel de methode
salut,

voila je vient de testé ta methode et elle fonctionne.

[code:1]PS C:\WINDOWS\system32&gt; $IIS.GetIntervenant(200232,200232)


DebutMision :
DebutMisionSpecified : True
FinMission :
FinMissionSpecified : True
IsActif : False
IsActifSpecified : True
IsPAPS : False
IsPAPSSpecified : True
Ref :
Roles :
TypeIntervenant : Autre
EMail : Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
Id : 200232
Nom1 : xxx &amp; xxx
Nom2 : 78000 Versailles 78
PersonneId [/code:1]

en me basant sur ton idée j'ai fait le test suivant.
$IIS.$method($method2,$method2)
ca fonctionne aussi.

par contre pourquoi doit ton mettre 2 fois la valeur chercher?

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.103 secondes
Propulsé par Kunena