我想设置当图片不在的时候出现一张默认的图片,而不是红叉,所以我写了一个IHttpHandler,代码在下边。然后我配置
web-config,<add verb="*" path="images/*.jpg" type="CoverHandler"/>、,现在的问题是为什么我在vs2008自带的环境下可以实现,但是放在iis就不行了呢,是不是路径错误呢,我觉得我的Handler没什么问题,因为我在本机上调试的时候如果web-config中的path路径配置的不对,那时候出现的问题和在iis上一样,都是不进入IHttpHandler。public class CoverHandler : IHttpHandler
{
public CoverHandler()
{
//
//TODO: 在此处添加构造函数逻辑
//
}    #region IHttpHandler 成员    private const string COVERSADDR = "~/images/";//存放原始图片的文件夹
    private const string DEFAULTIMAGE_URL = "~/images/default.jpg";//默认图片路径
    public void ProcessRequest(HttpContext context)
    {
        System.Drawing.Image Covers = null;
        if (!System.IO.File.Exists(context.Request.PhysicalPath))
        {
            Covers = System.Drawing.Image.FromFile(context.Request.MapPath(DEFAULTIMAGE_URL));        }
        else
        {
            Covers = System.Drawing.Image.FromFile(context.Request.PhysicalPath);   
        }
        context.Response.ContentType = "image/jpeg";        Covers.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
        Covers.Dispose();
        context.Response.End();
    }    public bool IsReusable
    {
        get
        {
            return false;
        }
    }    #endregion
}

解决方案 »

  1.   

    还有,为什么web-config,<add verb="*" path="images/*.aspx" type="CoverHandler"/>就能进入httphandler,而,<add verb="*" path="images/*.html" type="CoverHandler"/>就不能用呢,是不是要在iis中配置什么。
      

  2.   

    还有,我已经配置了.jpg的aspnet-isapi.dll可还是不行啊。
      

  3.   

    真的是不明白啊,aspx的能解,说明路径没有错,aspnet-isapi.dll也设置了,那么就不应该不显示了啊。我用的服务器是win2000 iis6.
      

  4.   

    路径对不对,url中又没有中文
      

  5.   

    与路径关系不大,同一路径下的.aspx就能触发handler,我重启iis去。
      

  6.   

    在vs自带的web服务器程序上可以,在iis不一定行啊。需要手动设置,人家iis才能知道你的handler。其实图片干嘛要.jpg呢?用.ashx或者.aspx代码下载(任意)文件没有学会?
      

  7.   

    不懂,能说的详细点吗。还有,我是新手,工作中别人做了一个网站,我现在要加个默认图片,在vs2008里添加.ashx吗?具体如何做呢。
      

  8.   

    我现在的问题和你一样,vs中跑没问题,iis运行就走不到handler里面去了