我正在研究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集成管道模式。”
以下是有关环境的一些细节:
我可能错过了一种让它发挥作用的简单方法......
提前谢谢,
乔
答案 0 :(得分:1)
Cassini或IIS 6不支持Response.Headers。对于其他一些近期功能也是如此,例如服务器变量。
解决方案:
通过在IIS中配置网站指向您的开发文件并相应地设置项目的起始URL,使用本地版本的IIS 7进行开发。如果需要,您可以为多个项目使用80以外的端口。
切换生产站点以使用IIS 7(可能使用Windows Server 2008)。升级还有很多其他好的理由,例如性能提升。
如果无法升级,我能想到的唯一选择是编写一个ISAPI过滤器来改变标题(用C ++编写)。