我们目前在我们的服务器上运行ImageResizer模块,一切正常。我们现在试图让水印插件与这个模块一起工作,但是,我们不想通过QS参数来使用这个插件。我们添加了http处理程序来处理所有图像 请求。对于任何外部请求(URL引用无关),我们将QS添加到映像构建器的设置中,并推出新映像。这是按预期工作的。asp.net ImageResizer InterceptModule可能会阻止httphandler?
我们的水印插件按预期工作,并且水印正确地显示出外部请求请求。但是,如果请求附加了ImageResize QS(因为我们所有的产品图像当前都是这样),则不会触发http处理程序。
所以domain.dev/images/03125_Purge_2L.jpg得到由处理程序捕获,但 domain.dev/images/03125_Purge_2L.jpg?format=jpg &规模都= &模式=垫&锚= middlecenter &宽度= 300 &高度= 300不(它仍然是 通的InterceptModule处理)
该请求或者由ImageResizer InterceptModule或触发处理程序截获,但不能同时使用。我查看了InterceptModule代码,但没有显示,据我所知,它应该阻止稍后在管道中触发http处理程序。
老实说,我不能肯定地说,如果它是从InterceptModule或我的配置为HttpHandlers设置的事情的问题。
有人在某处,一定做了同样的事情......
当前配置设置:
<modules>
<remove name="ImageResizingModule" />
<add name="ImageResizingModule"
type="ImageResizer.InterceptModule" />
</modules>
<handlers>
<remove name="InyoWatermarkHandler-jpg" />
<add name="InyoWatermarkHandler-jpg"
path="*.jpg"
verb="GET"
type="Domain.Images.WatermarkHandler, Domain.Images" />
<remove name="InyoWatermarkHandler-png" />
<add name="InyoWatermarkHandler-png"
path="*.png"
verb="GET"
type="Domain.Images.WatermarkHandler, Domain.Images" />
<remove name="InyoWatermarkHandler-gif" />
<add name="InyoWatermarkHandler-gif"
path="*.gif"
verb="GET"
type="Domain.Images.WatermarkHandler, Domain.Images" />
<remove name="InyoWatermarkhandler-bmp" />
<add name="InyoWatermarkhandler-bmp"
path="*.bmp"
verb="GET"
type="Domain.Images.WatermarkHandler, Domain.Images" />
</handlers>
由于两个ImageResizer.InterceptModule和HTTP处理程序独立工作,我作出了一定的假设设置在某种程度上是正确的。