我想设置当图片不在的时候出现一张默认的图片,而不是红叉,所以我写了一个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
}
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
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货