如何从WCF REST传出响应中删除默认标头?

时间:2010-06-15 18:18:24

标签: c# .net wcf rest

以下基于C#WCF的REST服务给了我一些不受欢迎的标头,我不确定是否可以通过API删除它们。

界面:

[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好的    服务器:ASP.NET Development Server / 9.0.0.0    日期:2010年6月15日星期二13:12:51 GMT    X-AspNet-版本:2.0.50727    缓存控制:私有    Content-Type:application / octet-stream    内容长度:39    连接:关闭

Hello World

问题是,是否可以让服务器不报告除实际消息之外的任何内容?在某些调用中需要它,因为一些小型嵌入式设备客户端将尝试连接到服务器,我希望最小化解析量。

谢谢, 乙

1 个答案:

答案 0 :(得分:0)

您要删除哪些标题?

可以通过setting the right options删除X-Asp-Version标头。有other ways删除在IIS下运行时可能有用的其他标题(而不是asp.net dev服务器,无论如何都不会在生产中使用)。

那就是说,你永远无法删除所有的HTTP内容;这是核心协议设计,它是必需的。如果您不希望这样,那么,根本不要使用HTTP并切换到更符合您需求的协议(可能需要实现您自己的自定义WCF传输通道,但这当然是可能的。)