Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Outputcache不';我不喜欢走路线_Asp.net_Routing_Outputcache - Fatal编程技术网

Asp.net Outputcache不';我不喜欢走路线

Asp.net Outputcache不';我不喜欢走路线,asp.net,routing,outputcache,Asp.net,Routing,Outputcache,我正在标准ASP.Net Web应用程序项目中使用System.Web.routing中的路由,而不使用MVC。这主要是为了在我们正在开发的门户中获得更整洁的url(而不是~/default.aspx?contentid=123,我们有~/{contentsubject})。门户未经授权,所有信息都在url中,因此在缓存场景中,我们可以缓存完整的页面 当我尝试启用输出缓存时,我注意到没有进行缓存。似乎outputcache页面指令被完全忽略。这是真的还是我遗漏了什么?这可以修复吗 我制作了一个小

我正在标准ASP.Net Web应用程序项目中使用System.Web.routing中的路由,而不使用MVC。这主要是为了在我们正在开发的门户中获得更整洁的url(而不是~/default.aspx?contentid=123,我们有~/{contentsubject})。门户未经授权,所有信息都在url中,因此在缓存场景中,我们可以缓存完整的页面

当我尝试启用输出缓存时,我注意到没有进行缓存。似乎outputcache页面指令被完全忽略。这是真的还是我遗漏了什么?这可以修复吗

我制作了一个小的测试应用程序(我上传到了),它只包含一个网页Webform1.aspx,它使用母版页和用户控件。三个都输出当前日期和时间

当我请求http//localhost/OutputcacheTest/Webform1.aspx时,10秒的缓存按预期工作,即显示的时间仅每10秒更新一次

该应用程序还定义了一个通配符路由,用于捕获所有请求并返回与处理程序相同的Webform1.aspx。因此,当请求http//localhost/OutputcacheTest/myroute时,会执行相同的页面,但现在缓存不起作用,即在每个请求上显示当前时间

注意:当使用内置的开发web服务器时,这两种方案都有效,只有IIS似乎存在此问题


在这种情况下,是否有人有解决方案或解决办法来启用输出缓存?

现在,控制器操作需要[OutputCache]属性


使用MVC操作时,结果会被缓存(可以通过某些参数值进行更改)。

我通过使模块和处理程序注册与本文中完全相同()来实现这一点

早些时候,我的注册是块中最后一个注册,现在我将它们移到了顶部。我还在该块中添加了属性runAllManagedModulesForAllRequests=“true”



现在outputcache页面指令开始工作了!

感谢您的快速回答。问题是,因为我不使用MVC,只使用路由,所以我没有outputcache属性,因为它位于System.Web.MVC命名空间中。在这种情况下,我不确定正确的操作步骤是什么。也许可以查看MVC的源代码,看看它是如何完成的d如何找到解决方法。