关于使用一般处理程序给图片添加水印的方法,请参考:
有些时候,给图片添加水印了,在本机运行也都正常,但是发布到IIS上后就没有水印效果了。本人做这个功能的时候就碰到这个问题了,百度了好久,都没找到合适的答案,最后还是自己慢慢摸索出来了以下几点,希望能对碰到这种问题的朋友们有些帮助:
1. 在IIS上部署HttpHandler:
选定节点,点击相应的“处理程序映射”,进入页面
选定“处理程序映射”后,点击右侧的“添加脚本映射”选项,进入相应页面
填写相应内容:
请求路径:填写*.jpg是给所有图片加水印,images/goods/*.jpg是指定images文件夹下goods文件夹中的所有图片添加水印,可以根据需要自行填写。
可执行文件:点击右侧的按钮,在选择窗口中选择:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll,点击确定。
注意:64位系统有两个文件夹,一个是framework64,一个是framework,这个要与应用程序池中是否启用32位应用程序相对应,如果这两个不一致,就会出现异常。
点击 请求限制,进入相关窗口进行设置:一般在访问选项中选择脚本即可,其他无需设置。
在IIS上部署HttpHandler完成。
2.设置应用程序池:选定站点绑定的应用程序池,查看“是否启用32位应用程序”
默认情况下,64位WIN7系统中的“是否启用32位应用程序”默认选择为Flase.即默认启用64位应用程序的。那么,在应用程序池没有改动情况下,要选择C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll。
如果“是否启用32位应用程序”设置为True,那么要选择C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll。
3. 如果HttpHandler已经正确部署,还是没有效果,那么重启电脑,重启IIS服务,只要本机运行正常,HttpHandler部署正确,应该都可以正常显示了。
本人的就是部署了HttpHandler后检查了好些遍,并没有发现什么错误,IIS也重启了,但还是没有显示。这时就郁闷的要死了,配置文件里面也有部署HttpHandlers的一些节点。都没问题的。后来帮同事调一个网页,由于时间比较久,回来后,电脑进入了睡眠状态,网络也断掉了,再次回去运行页面,居然正常显示了。