Question
[Resolu] Erreur appel de methode
- africanism78
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 4 ans 10 mois #29012
par africanism78
[Resolu] Erreur appel de methode a été créé 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.
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
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.
pour exemple car ca me fait la meme chose sur les 3 qui ce trouve dans le fichier.Échec lors de l’appel de la méthode, car [System.String] ne contient pas de méthode nommée « GetInfosCompte »
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 4 ans 10 mois #29013
par Laurent Dardenne
Tutoriels PowerShell
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]
à 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.
- africanism78
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
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
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 4 ans 10 mois #29016
par Laurent Dardenne
Tutoriels PowerShell
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]
[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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 4 ans 10 mois #29018
par Laurent Dardenne
Tutoriels PowerShell
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
[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.
- africanism78
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
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> $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 & 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?
voila je vient de testé ta methode et elle fonctionne.
[code:1]PS C:\WINDOWS\system32> $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 & 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
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- [Resolu] Erreur appel de methode