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をオンにしたため、要求された画像が404を返し、エラーハンドラページにリダイレクトするため、200ステータスOKを返し始めました。 200ステータスokを返します。customErrorsページが200okを返したり、画像に対して機能したりするのを防ぐ方法はありますか?

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 に答える