我尝试从PowerShell脚本调用Web服务方法,但它失败了。这是C#代码:
public MyTable InsertRow(MyTable data)
{
var dataContext = new MyEntities();
dataContext.MyTables.AddObject(data);
dataContext.SaveChanges();
return data;
}
这就是我在PowerShell中调用它的方式:
$uri = "http://localhost/MyWcfService/MyService.svc?wsdl"
$svc = New-WebServiceProxy -Uri $uri -UseDefaultCredential
$t = $svc.GetType().Namespace
$attributes = New-Object($t + ".MyTable")
$attributes.Name = "Project X"
$attributes.Comment = "This is a test"
$resp = $svc.InsertRow($attributes)
$resp
这是我得到的错误:
无法找到" InsertRow"和参数计数:" 1"。在行:1个字符:1 + $ resp = $ svc.InsertRow($ attributes) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified:(:) [],MethodException + FullyQualifiedErrorId:MethodCountCouldNotFindBest
我做错了什么?
更新 当我调用$ attributes.GetType():
时,这是内置的.NET类型IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True MyTable Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes.WebServiceProxy1WcfService_MyService_s...
答案 0 :(得分:0)
我放弃尝试在PowerShell中调用我的RESTful Web服务。我将本教程用于create entity data in a data service,然后使用此sample code来使用C#来使用服务。我还没试过,但我应该能够use the C# code in PowerShell script(这是我项目的要求)。