2011-04-15 28 views
1

我在写一个WCF服务存根以'模仿'存在的现有VB6服务。存根需要接受一个字符串的参数,执行一些逻辑并返回一个字符串。尝试将xml参数转换为对象时WCF反序列化当我只想字符串

给出了服务合同

[OperationContract] 
[WebInvoke(Method = "POST", 
    UriTemplate = "lookup")] 
string LookupItem(string requestXml); 

当我在提琴手发布的消息,我得到

服务器遇到错误 处理错误以下方法,我遇到的问题请求。例外 消息是“无法反序列化XML 体与根名称‘XmlRoot’和 根名称空间‘’(操作 ‘LookupItem’和合同 (” IServiceStub”, ‘http://tempuri.org/’ ))使用 DataContractSerializer。确保 与XML对应的类型是 添加到已知类型集合 的服务中。

是WCF试图反序列化我的XML到一个对象,即使我不想要它?该字符串以text/xml形式发送,因为它模仿的服务必须以text/xml形式接收POST。有什么我失踪?

回答

0

克服了这个有以下:

public Stream LookupItem(Message requestXml) 
    { 
     WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml"; 
     string responseXml = "<whatever />"; 
     return new MemoryStream(Encoding.UTF8.GetBytes(responseXml)); 
    } 
相关问题