【发布时间】:2015-10-22 17:45:29
【问题描述】:
我有一个 WCF 服务,其默认响应如下所示:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body/>
</s:Envelope>
我希望它完全不同,例如
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'
xmlns:xsd='http://www.w3.org/1999/XMLSchema'
xmlns:xsi='http://www.w3.org/1999/XMLSchema-instance'>
<SOAP-ENV:Body>
<ns1:methodResponse xmlns:ns1='urn:MyService' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>
<message href='cid:success'/>
</ns1:methodResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
我尝试将响应手动创建为字符串,然后添加Response.Write(xml)。
问题是默认响应(第一个)也发送到客户端,所以我得到了两个响应。
如何阻止 WCF 发送不需要的响应?
【问题讨论】:
-
在语义上,第二个响应的唯一区别是标签 methodResponse 及其内部 xml。你想添加这个标签还是需要命名空间前缀完全一样?
-
我只需要用包含首选 XML 的逐字字符串替换默认 XML 数据。我不需要更改名称空间或标题。有可能吗?
-
我遵循了一些教程并附带了这个 ideone.com/bFbnGk 但是我不知道如何使它工作(可能我不知道如何将检查器添加到 web.config 中)我仍然获取默认响应。 THX