在C#中,我可以做到以下几点:添加自定义SOAP头在PowerShell中使用新WebServiceProxy
var header = MessageHeader.CreateHeader("MyHeader", "http://mynamespace", "Header value");
OperationContext.Current.OutgoingMessageHeaders.Add(header);
这增加了如下的SOAP消息:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<MyHeader xmlns="http://mynamespace">Header value</MyHeader>
....
</s:Header>
...
我怎样才能同样添加调用New-WebServiceProxy PowerShell命令行生成的代理上的方法时定制传出SOAP消息头?
编辑: 为了澄清,我可以在PowerShell中相同的调用,我展示在C#以上,但OperationContext.Current始终为空。我通过创建一个OperationContextScope来解决C#中的问题,但这需要Web服务代理的内部通道,而PowerShell的代理似乎没有提供这个通道。
为了说明问题,我可以在PowerShell中进行相同的调用,使其显示在上面的C#中,但OperationContext.Current始终为空。我通过创建一个OperationContextScope来解决C#中的问题,但这需要Web服务代理的内部通道,而PowerShell的代理似乎没有提供这个通道。 – dcstraw
请通过此说明更新您的问题。 –
仅供参考我结束了使用代理的CookieContainer设置cookie来传递我需要的信息。从Jason的回答看来,我的最初目标可能是可能的,但有些牵扯。如果我有它再做一次,我可能会去使用svcutil生成的WCF代理。 – dcstraw