我有一個簡單的C#web服務代理類,使用WSDL.exe創建。我正在調用遠程Web服務上的一個方法,它包含了一堆我不想要的WS-Addressing和WS-Security標頭(並且服務器正在窒息)。這裏是原始SOAP請求的例子:從WSE 3.0中刪除WS-Addressing/WS-Security部分客戶端請求
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<soap:Header>
<wsa:Action></wsa:Action>
<wsa:MessageID>urn:uuid:22f12267-b162-4703-a451-2d1c5c5a619b</wsa:MessageID>
<wsa:To>http://example.com/wstest</wsa:To>
<wsse:Security>
<wsu:Timestamp wsu:Id="Timestamp-5c9f0ef0-ab45-421d-a633-4c4fad26d945">
<wsu:Created>2009-04-15T16:27:25Z</wsu:Created>
<wsu:Expires>2009-04-15T16:32:25Z</wsu:Expires>
</wsu:Timestamp>
</wsse:Security>
</soap:Header>
<soap:Body>
<Func1 xmlns="http://example.com">
<arg_1 xmlns="">blah</arg_1>
<arg_2 xmlns="">blah2</arg_2></arg_2>
</Func1>
</soap:Body>
</soap:Envelope>
但我不關心的WS-Addressing/WS-Security的東西。我沒有做任何事情來包括它。 .NET WSE 3.0包似乎默認添加它們。有什麼辦法擺脫這些?我可以看到我的代理對象上沒有允許我刪除這些部分的屬性。我試過了:
proxyObject.Addressing.Clear();
proxyObject.Security.Clear();
當我調用我的web服務方法時,這些會導致null引用異常。
我想要的SOAP請求是這樣的:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
</soap:Header>
<soap:Body>
<Func1 xmlns="http://example.com">
<arg_1 xmlns="">blah</arg_1>
<arg_2 xmlns="">blah2</arg_2></arg_2>
</Func1>
</soap:Body>
</soap:Envelope>
在此先感謝
這可能有所幫助:http://blogs.msdn.com/b/dhrubach/archive/2008/06/16/modifying-the-security-header-generated-by-wse-runtime.aspx – 2012-10-01 14:01:54
如果你是使用WCF然後這個SO問題可能會幫助你http://stackoverflow.com/questions/24635950/remove-timestamp-element-from-ws-security-headers-created-by-wcf – Ruskin 2014-07-11 08:15:33