我正在尝试编写一个访问我的wcf webservices之一的cmdlet。
我一直在研究新的cmdlet:New-WebServiceProxy,但它实际上似乎只能使用ASMX Web服务。
我看过这篇文章;主要围绕Powershell v1.0 我宁愿使用更好的方法(如果存在的话)。 http://keithhill.spaces.live.com/blog/cns!5A8D2641E0963A97!645.entry
来自我使用此网络服务的其他.net应用程序,这是我使用的那种配置;
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IMyService" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288" maxReceivedMessageSize="65536000" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
<readerQuotas maxDepth="32" maxStringContentLength="819200" maxArrayLength="1638400" maxBytesPerRead="409600" maxNameTableCharCount="1638400" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
<security mode="Message">
<transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
<message clientCredentialType="Windows" negotiateServiceCredential="true" algorithmSuite="Default" establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://myServer/MyService/MyService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IMyService" contract="MyService.IMyService" name="WSHttpBinding_IMyService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
</client>
</system.serviceModel>
有人想建议我吗?
答案 0 :(得分:2)
最终,您将要创建一个客户端代理对象,将其编译为.NET程序集,在PowerShell中创建该代理并对其进行编程。编写了New-WebServiceProxy以允许您这样做。我很惊讶它只会对抗ASMX服务吗?也许它不适合您,因为您的配置文件中没有定义MEX端点?请参阅此article on how to create a MEX endpoint,它将为您的网络服务启用代理生成。