我正在为 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
- 集成开发环境:Visual Studio 2008
- Web 服务器:Cassini [开发] 和 IIS6 [生产]
我可能缺少一个简单的方法来让它工作......
提前致谢,
Joe
Cassini 或 IIS 6 不支持 Response.Headers。其他几个最新功能也是如此,例如服务器变量。
解决方案:
通过在 IIS 中配置网站以指向您的开发文件,并相应地设置项目的起始 URL,使用本地版本的 IIS 7 进行开发。如果需要,您可以为多个项目使用 80 以外的端口。
将您的生产站点切换为使用 IIS 7(可能使用 Windows Server 2008)。升级还有很多其他充分的理由,例如性能的提高。
如果无法升级,我能想到的唯一替代方法是编写 ISAPI 过滤器来更改标头(用 C++ 编写)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)