2010-06-15 92 views
1

以下基於C#WCF的REST服務給了我一些不受歡迎的頭文件,我不確定是否可以通過API刪除它們。如何從WCF REST傳出響應中刪除默認標題?

接口:

[ServiceContract] 
public interface IControlSystem 
{ 
    [OperationContract] 
    [WebGet] 
    System.IO.Stream About(); 
} 

實施:

public class ControlSystem : IControlSystem 
{ 
    public System.IO.Stream About() 
    { 
     return new System.IO.MemoryStream(ASCIIEncoding.Default.GetBytes("Hello World")); 
    } 
} 

出原始套接字連接它提供了以下回應:

HTTP/1.1 200 OK 服務器:ASP。 NET開發服務器/ 9.0.0.0 日期:2010年6月15日星期二13:12:51 GMT X-AspNet版本:2.0.50727 的Cache-Control:私人 內容類型:應用程序/八位字節流 的Content-Length:39 連接:關閉

的Hello World

問題是,是否有可能得到服務器不報告任何東西除了實際的消息?在一些調用中需要它,因爲一些小的嵌入式設備客戶端會嘗試連接到服務器,我想盡量減少解析量。

感謝, B.

回答

0

頭究竟是你想刪除哪些內容?

X-Asp版本標題可以通過setting the right options刪除。有other ways刪除其他頭可能會有用,以及在IIS下運行(而不是在生產中不會使用的asp.net dev服務器)。

也就是說,你將永遠無法刪除所有的HTTP的東西;這是核心協議設計,它是必需的。如果你不想這樣做,那麼就不要使用HTTP,並切換到更適合你需求的協議(這可能需要實現你自己定製的WCF傳輸通道,但它當然有可能)。

+0

謝謝,真的很感激。 – 2010-06-16 13:22:39

+0

好的,有趣的是,當在IIS下運行時,默認情況下不會返回任何頭文件,女巫恰好是我想要的。 此外,我看了如何讓一個簡單的原始客戶端連接到一個自定義綁定,但不幸的是,沒有BindingElement可以讓我有一個非SOAP消息通過。 充其量我可以設置一個自定義綁定TCP傳輸和文本消息編碼。 SOAP仍將被使用。 – 2010-06-16 18:43:02

+0

只是爲了文檔,這裏有一個關於綁定信息的不錯鏈接:http://msdn.microsoft.com/en-us/magazine/cc163394.aspx#S4 – 2010-06-16 18:44:03