0

我执行以下代码来检查图像是否存在:

 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 状态 ok。有没有办法解决这个问题来防止 customErrors 页面返回 200 ok 或为图像工作?

4

1 回答 1

0

通过将此代码放入我的通用处理程序页面(我在 customErrors 中设置),我为遇到相同问题的任何人找到了解决此问题的快速方法

if (Request.Params.ToString().Contains("jpg") || Request.Params.ToString().Contains("png"))
        Response.StatusCode = 404;

这基本上会强制它为任何 jpeg/png 图像返回 404,但是对于所有其他错误,它会强制显示通用页面。

于 2013-01-16T11:09:19.407 回答