我执行以下代码来检查图像是否存在:
public bool DoesImageExist(string imageUrl)
{
bool exists = false;
try
{
HttpWebRequest request = (HttpWebRequest)System.Net.WebRequest.Create(imageUrl);
request.Timeout = 5000;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
exists = (response.StatusCode == HttpStatusCode.OK);
}
}
catch
{
exists = false;
}
return exists;
}
这很好,并为不存在的图像返回404,但是因为我在web.config中打开了customErrors,它开始返回200状态ok,因为它请求的图像返回404并重定向到错误处理程序页面返回200状态确定。有没有办法防止customErrors页面返回200 ok或为图像工作?
答案 0 :(得分:0)
通过将此代码放入我的通用处理程序页面(我在customErrors中设置),我找到了解决此问题的任何人的快速方法
if (Request.Params.ToString().Contains("jpg") || Request.Params.ToString().Contains("png"))
Response.StatusCode = 404;
这基本上迫使它为任何jpeg / png图像返回404,但是对于所有其他错误,它会强制显示通用页面。