Il semble que les WebMethods ASP.NET ne soient pas suffisamment "web servicey" pour fonctionner avec New-WebServiceProxy
. Ou peut-être, et je n'ai pas compris comment l'initialiser?Comment appeler un WebMethod ASP.NET à l'aide de PowerShell?
Ainsi, au lieu, j'ai essayé de le faire manuellement, comme ceci:
$wc = new-object System.Net.WebClient
$wc.Credentials = [System.Net.CredentialCache]::DefaultCredentials
$url = "http://www.domenicdenicola.com/AboutMe/SleepLog/default.aspx/GetSpans"
$postData = "{`"starting`":`"\/Date(1254121200000)\/`",`"ending`":`"\/Date(1270018800000)\/`"}"
$result = $wc.UploadString($url, $postData)
Mais cela me donne « Le serveur distant a retourné une erreur: (500) Erreur interne du serveur. » Je dois donc faire quelque chose qui ne va pas.
Des idées sur comment appeler mon PageMethod
à partir de PowerShell, et ne pas obtenir une erreur?
Je n'ai pas d'ASMX, car j'ai simplement décoré une méthode dans mon code-behind avec '[WebMethod]'. C'est-à-dire, il y a SleepLog/Default.aspx, puis dans SleepLog/Default.aspx.cs, il y a un 'WebMethod'. Lorsque j'essaie d'utiliser 'New-WebServiceProxy', j'obtiens donc, de façon prévisible," Le document HTML ne contient pas d'informations de découverte de service Web. " – Domenic
@Domenic, pourquoi ne pas créer un service Web approprié. C'est aussi simple que d'hériter de 'System.Web.Services.WebService'. Ensuite, 'New-WebServiceProxy' devrait fonctionner comme Keith l'a suggéré dans sa réponse devrait-être acceptée. – stej
Comme je ne fournis pas vraiment de service, la sémantique des services Web semble inappropriée ici. Je cherche juste un moyen d'obtenir les résultats d'un appel POST spécifique, qui est implémenté en tant que 'WebMethod' dans une page de code-behind. Pour ma question, la réponse acceptée serait «voici comment faire ça» ou «ce n'est pas possible, et voici pourquoi». – Domenic