13

场景:我有一个在 Visual Studio 2008 中开发的 ASP.NET MVC 应用程序。有一个名为“Content”的根文件夹,用于存储图像和样式表。当我在本地运行(使用 Cassini)并浏览我的应用程序时,总是会下载“内容”目录中的每个 资源。使用 Firebug,我可以验证 Web 服务器是否返回 HTTP 200(“ok”)。

期望:我希望 Cassini 返回 HTTP 304(“未修改”)而不是 200。这是在 IIS7 下运行站点时的行为。

推理:我正在处理的网站有大量静态资源(通常每页多达 40 个)。在 IIS7 上浏览站点非常快,因为这些资源(正确地)由浏览器缓存。但是,在我的本地计算机上浏览该站点非常缓慢。

在 IIS7 上在 1 秒内呈现的页面需要 30 多秒才能在 Cassini 上呈现。实际上,每隔几分钟上传整个网站并从那里进行测试对我来说更快。(是的,我承认这是不正当和疯狂的。)

那么:我如何指导/欺骗 Cassini 像 IIS7 一样处理“内容”目录

4

3 回答 3

27

您确定问题出在缓存上吗?因为当我在 Cassini 上运行应用程序时,内容确实会正确缓存在我的机器上。

我认为您遇到的问题可能是 Firefox 在解析 IPv6 地址时性能不佳,这会导致使用http://localhost:55555之类的地址加载时出现非常烦人的延迟。

我为改变这种行为所做的就是在 Firefox 上更改首选项network.dns.disableIPv6。我建议尝试一下。about:configtrue

于 2009-04-27T22:07:53.153 回答
15

我在 Chrome 中遇到过类似的问题。要解决此问题,请取消注释文件中的 IPv4 localhost 行hosts。显然,这些默认情况下在 Windows 7 中被注释。

127.0.0.1       localhost
#::1             localhost
于 2010-06-10T12:17:08.780 回答
2

您的另一个选择是简单地跳过 Cassini 并在 IIS 下进行调试。它非常简单,不需要十分钟即可启动和运行。浏览您在 Cassini 上的 20 个页面,反正您已经使用了那段时间;)

我注意到的一件事并不总是在指南中,如果您想在不同的地址上进行调试,则http://localhost/需要手动将主机设置为本地 IIS。这是通过在hosts文件中添加一行来完成的,位于

C:\Windows\system32\drivers\etc\hosts

使用记事本打开文件(如果您使用的是 Windows Vista 并打开了用户帐户控制,则需要“以管理员身份运行”才能保存...)并添加您的主机。例如,在http://mysite/你添加下调试

mysite         127.0.0.1
于 2009-04-27T22:09:07.003 回答