有没有办法从响应标头读取而不会得到PlatformNotSupportedException?

时间:2009-11-21 01:56:58

标签: asp.net asp.net-mvc visual-studio-2008 .net-3.5 cassini

我正在研究ASP.Net MVC的过滤器属性,当内容未被修改时,它将返回304响应。能够读取Controller中设置的Last-Modified标头值以便完成此操作会很方便......似乎只有一个问题。在Cassini [Visual Studio 2008开发Web服务器]上执行如下代码时,我似乎无法找到读取标题的方法......

Response.AddHeader("Last-Modified", lastModified);
string getLastModified = Response.Headers.Get("Last-Modified");

我也尝试了以下内容:

Response.AddHeader("Last-Modified", lastModified);
string getLastModified = Response.Headers["Last-Modified"];

两者都返回PlatformNotSupportedException并指示它们需要“此操作需要IIS集成管道模式。”

以下是有关环境的一些细节:

  • 框架版本:.Net 3.5 - SP1
  • IDE:Visual Studio 2008
  • Web服务器:Cassini [Dev]和IIS6 [Production]

我可能错过了一种让它发挥作用的简单方法...... 提前谢谢,

1 个答案:

答案 0 :(得分:1)

Cassini或IIS 6不支持Response.Headers。对于其他一些近期功能也是如此,例如服务器变量。

解决方案:

  1. 通过在IIS中配置网站指向您的开发文件并相应地设置项目的起始URL,使用本地版本的IIS 7进行开发。如果需要,您可以为多个项目使用80以外的端口。

  2. 切换生产站点以使用IIS 7(可能使用Windows Server 2008)。升级还有很多其他好的理由,例如性能提升。

  3. 如果无法升级,我能想到的唯一选择是编写一个ISAPI过滤器来改变标题(用C ++编写)。