2

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

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]

我可能错过了一个简单的方法来让它工作......
在此先感谢,

4

1 回答 1

1

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

解决方案:

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

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

如果无法升级,我能想到的唯一选择是编写一个 ISAPI 过滤器来更改标头(在 C++ 中)。

于 2009-11-21T03:59:51.340 回答