0

我做下面的代码来检查是否有图像存在:不存在的图像返回状态代码200,而不是400

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状态,因为它请求的图像返回一个404并重定向到返回200状态的错误处理页面。有没有办法解决这个问题,以防止customErrors页面返回200 OK或图像?

回答

0

我发现周围一个快速的方式为同样的问题任何人通过把这个代码放到我的通用处理器页面(这是我在的customErrors设置)

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

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

相关问题