假设我们有MVC应用程序和图像位于:/Images/image1.png
我们有与此特定路线相匹配的行动
[Route("Content/{filename}")]
public ActionResult GetImage(string filename)
{
// Process image (add watermark etc..)
}
目标是在将png文件发送到浏览器之前对其进行处理。
当我们尝试访问此操作时会出现问题:
/Content/image1.png
它返回404因为.png扩展名被处理为静态内容所以它认为我试图从该位置加载图像。另一方面,如果我们在文件名之后添加斜杠:/Content/image1.png/它可以正常工作
问题是如何使iis忽略png并将其作为路径而不是静态内容处理
我在web.config中尝试了这个但没有运气:
<system.webServer>
<staticContent>
<remove fileExtension=".png" />
</staticContent>
</system.webServer>
答案 0 :(得分:0)
确定。找到了解决方案。你需要添加
<handlers>
<add name="PngFileHandler" path="*.png" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
找到here