以下基于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
问题是,是否可以让服务器不报告除实际消息之外的任何内容?在某些调用中需要它,因为一些小型嵌入式设备客户端将尝试连接到服务器,我希望最小化解析量。
谢谢, 乙
答案 0 :(得分:0)
您要删除哪些标题?
可以通过setting the right options删除X-Asp-Version标头。有other ways删除在IIS下运行时可能有用的其他标题(而不是asp.net dev服务器,无论如何都不会在生产中使用)。
那就是说,你永远无法删除所有的HTTP内容;这是核心协议设计,它是必需的。如果您不希望这样,那么,根本不要使用HTTP并切换到更符合您需求的协议(可能需要实现您自己的自定义WCF传输通道,但这当然是可能的。)