2011-04-15 43 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)); 
    } 
相關問題