惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
Recent Announcements
Recent Announcements
H
Help Net Security
Y
Y Combinator Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
有赞技术团队
有赞技术团队
小众软件
小众软件
Last Week in AI
Last Week in AI
U
Unit 42
Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
N
Netflix TechBlog - Medium
Blog — PlanetScale
Blog — PlanetScale
云风的 BLOG
云风的 BLOG
V
V2EX
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
博客园 - 三生石上(FineUI控件)
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿

博客园 - jblzg

用powershell脚本实现Andoird为不同市场编译、签名自动化,效率极大提高 JSON与Protocol Buffers Visual Studio 2008提高工作效率的小技巧 转:批处理获得任意天前的日期 SQL Server 2008 事务日志物理文件尺寸无法减小的解决办法(含日志收缩(shrink)技巧) 用虚拟机实际体验Google Chromium OS (Chrome OS) Pre-Built 2009年互联网5大趋势之一:结构化的数据 由一个案例引出SQL注入防范(WebKnight),补救(数据修复)的思考 参加Google Developer Day 2009归来 宽高比例不固定的用户头像纵向居中的方法(不使用表格、代码精简、图片不变形) Canonical URL Tag - 继SiteMap之后最重要的搜索引擎优化实践 - jblzg 金额字符串转换成Decimal格式的怪问题引发的思考 对常规启用 IIS6.0 Gzip 方法的补充,用于解决wget、curl等无法得到压缩结果的问题 FCKeditor.NET的配置、扩展与安全性经验交流 搜狐博客列表页面分析 ASP.NET Web 开发中的静态资源(JS、CSS、图片)版本控制 避免修改Web.config的appSettings配置时导致的所有页面重编译 参加Google Developer Day 2008归来 一次有趣的Debug——使用Lumigent Log Explorer对SQL Server事务日志进行分析,对SQL Server事务、操作进行撤销(恢复)
网站首页、频道首页静态化的问题
jblzg · 2009-03-04 · via 博客园 - jblzg

我们公司的网站首页、频道首页静态化策略是这样的:

一个服务ServiceA每5分钟会对配置好的网站首页、频道首页源地址分别发起一次请求,然后把请求的数据写入一个Html文档,这个Html文档即静态化的页面。

本来一直工作的很正常,但今天我使用了自定义的500错误页面后出问题了,首页静态页面不定时地呈现出了我自定义的500错误页面,经分析,发现原来没有使用自定义错误页面时,WebResponse的返回结果是一个错误,可以被捕捉到;但使用了自定义错误页面后,WebResponse就把这个错误页面当成了首页的内容了。

接下来就是改进ServiceA了,在获得WebResponse的内容之前先判断返回的HttpStatusCode,只有是200时才返回页面内容,否则返回一个空字符串,附部分代码:

HttpWebRequest wr = (HttpWebRequest)HttpWebRequest.Create(SourceUrl);
wr.Timeout 
= 20000;  // 20秒
HttpWebResponse wResponse = (HttpWebResponse)wr.GetResponse();

if (wResponse.StatusCode == HttpStatusCode.OK)
{
    StreamReader sr 
= new StreamReader(wResponse.GetResponseStream(), System.Text.Encoding.GetEncoding(Encodeing));
    strContent 
= sr.ReadToEnd();
}

在如何获得Http请求的状态代码时颇费一番周折,后来发现WebResponse类是没有 StatusCode 属性的,只有继承于它的HttpWebResponse类才有;另外,HttpWebRequest.GetResponse 返回的类型竟然不是HttpWebResponse,而是WebResponse,难道HttpWebResponse.GetResponse 还会返回非Http的Response?如果有朋友有答案,感谢分享。