在我的项目中,我们根据请求的域更改一个图像。当然我们可以提供不同的文件(css,js,html),但更容易处理这个文件并为用户提供正确的文件(让我们称之为logo.ico
)
在web.config中,我们设置了<modules runAllManagedModulesForAllRequests="false">
,这导致IIS为我们提供所有静态文件。
有没有办法为`logo.ico'文件添加例外?
示例清楚:当浏览器请求http://mydomian.com/logo.ico时,我想运行自定义处理程序。对于每个其他文件,我想使用IIS本机解决方案(这意味着<modules runAllManagedModulesForAllRequests="false">
)
答案 0 :(得分:0)
无法仅为一个文件添加异常,但您可以使用ashx处理程序提供该图像,例如url应该看起来像(添加您自己的逻辑以选择图像)
http://mydomian.com/ServeImage.ashx?image=logo.ico
然后只为该域提供图标:
public class ServeImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/x-icon";
using (var fs = new FileStream(context.Server.MapPath("~/App_Data/logo.ico"), FileMode.Open))
{
fs.CopyTo(context.Response.OutputStream);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}