根据 Scott Hanselman 的一篇文章,我们在 Webforms 项目中始终将 runAllManagedModulesForAllRequests 选项设置为 false。
此外,我们还有一些成功运行的 routes.MapPageRoute 配置。
现在我们需要为我们的 webform 项目添加 ICS(互联网日历)支持。为了为用户创建一个干净、可读的 url,可以由 IHttpHandler 处理,我添加了以下内容:
routes.Add(new Route("ical/{username}/{somecheck}", new ICalHandler()));
现在,url 就是我们想要的方式,就像这样:
http://foo.com/ical/username/abc.ics
在 localhost(VS2012,Windows 8)上,runAllManagedModulesForAllRequests 可以为 false。
在测试服务器(Win2k8 R2、IIS7.5)上,我收到“找不到页面”错误。但是,当我启用 runAllManagedModulesForAllRequests 时,它可以工作。
如果一定要这样,那就这样吧。但我真的很想知道为什么......谁能解释我为什么需要启用这个设置?
提前谢谢了。