Asp.net 如何设置内容长度标题并在Cassini中工作?

Asp.net 如何设置内容长度标题并在Cassini中工作?,asp.net,http,http-headers,cassini,http-head,Asp.net,Http,Http Headers,Cassini,Http Head,我正在做一个低级的ASP.Net项目。我需要支持的事情之一是正确处理HEAD请求。对于未初始化的人来说,HEAD请求基本上只是没有内容的HTTP头 部分内容包括正确的内容长度。(即使ASP.Net认为内容长度为0) 我使用此代码进行设置: HttpRequest r; .... if(r.Headers.AllKeys.Contains("Content-Length")){ r.Headers["Content-Length"]=length.ToString(); }else{

我正在做一个低级的ASP.Net项目。我需要支持的事情之一是正确处理HEAD请求。对于未初始化的人来说,HEAD请求基本上只是没有内容的HTTP头

部分内容包括正确的内容长度。(即使ASP.Net认为内容长度为0)

我使用此代码进行设置:

HttpRequest r; .... 
if(r.Headers.AllKeys.Contains("Content-Length")){
    r.Headers["Content-Length"]=length.ToString();
}else{
    r.AddHeader("Content-Length",length.ToString());
}
这在mod_mono+Apache和mono实现的
xsp
上运行良好,但是在Microsoft的Cassini dev服务器上,这会产生一个PlatformNotSupportedException,文本为
。此操作需要IIS集成管道模式。


对于这个问题是否有任何已知的解决方法

它在IIS中工作吗?如果是这样的话,你可以设置一个IIS应用程序并将其指向你的工作环境。我同意MK_Dev的观点,你应该使用IIS。Cassini只是一个玩具,它永远不适合“低级ASP.NET项目”。@LexLi我的问题是,这是一个供其他开发人员使用的库,所以我真的不想强迫所有使用我的库的人使用IIS进行开发。。。我想我只能说HEAD请求对Cassini不起作用,这是好事。在IIS7推出后,微软很快发布了IIS Express来取代Cassini。我认为这是避免类似问题的好办法。因此,是时候抛弃卡西尼号了。此外,根据HTTP RFC 2616第4.4节和第14.13节,您试图提供正确的内容长度是没有用的,因为正确实现的HTTP客户端应该根据第4.4节规则1自动忽略它@莱克斯利嗯。。有趣。我还没有看到规范的这一部分。我可能需要问另一个问题,让别人再给我解释一下