当前位置:编程学习 > C#/ASP.NET >>

补充ASP+persits.jpeg组件做验证码在WIN Server 03下不能正常显示的一些解决办法

网上一搜诸如ASP+persits.jpeg组件做验证码在WIN Server 03下不能正常显示的一些解决办法
都会或多或少的得到如下的所谓的 完美解决方案
1.为何在win 2003系统下无法显示验证码??? 
打开IIS管理器--打开网站属性对话框--主目录--配置--选项--默认ASP语言,这里应该设为 
VBScript。在WIN2003中,可能这里的设置是“JavaScript”,请改成VBScript。并要勾选“启用父路径 
”。

windows 2003系统中验证码不能显示问题

根据不同的用户,可能情况不一样,但三种方法可以全面解决图片验证码问题。

可以考虑直接制作注册表文件,然后修改IIS6的配置。

一、修改注册表,显示xbm格式的验证码 
新建2k3.txt文件,复制下列代码并保存。 
Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Security] 
"BlockXBM"=dword:00000000 
然后将2k3.txt文件改为:2k3.reg 双击打开导入注册表,重新打开浏览器即可。 或手动修改注册表: 
点击“开始”→“运行”,在运行窗口中输入“regedit"(不含引号),点击“确定”按钮,定位到"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Security",在右面窗口空白处点击鼠标右键,新建一个"DWOED值"。将该“新建的值”命名为"BlockXBM"(不含引号)。 
验证码不能显示是你的2k3系统问题。 
  然后鼠标右键点击"BlockXBM"项,修改此键值为8个0,如下图所示。点击“确定”按钮保存之重新启动电脑,使注册表生效,即可显示验证码。 
  为什么XP SP2会默认不显示验证码呢?原来微软公司在XP SP2里面默认不显示XBM图形格式。 
  X-Bitmap(XBM)是一种古老但通用的图像文件格式,它与现在的许多Web浏览器都兼容。X-Windows图形界面(UNIX和Linux常用的GUI)的C代码库xlib中有一个组件专门描述了它的规范。XBM图形的实质上是使用16进制数组来表示二进制图像的C源代码文件。 
  XBM格式本来是为存储单色的系统位图而设计的,比如图标和鼠标指针。X-Bitmap的实用程序包括动态生成的图、页面计数器、老式图形图标、以及统计图表。在上世纪九十年代早期,美国超级计算应用中心(NCSA)在伊利诺斯大学开发第一个被广泛使用的Web浏览器,名为Mosaic。这个浏览器的图形支持来自很多开放源码代码库,其中就包括xlib。因此,导致今天的许多浏览器能够处理XBM图形。 
  Mosaic项目后来成为了Netscape浏览器的开发基础。微软也借用了一部分Mosaic代码来创建Internet Explorer。微软继而在网络信息服务器(IIS)中将XBM作为一个MIME类型注册而提供本地支持,并且在现有所有版本的Internet Explorer中将其作为一种可支持的图像。 
  从一个程序员的角度来看,JPEG或GIF与XBM有着极大的不同。这两种文件格式都在位级别上操作并使用了压缩算法。它们可以支持很大的颜色深度范围。创建这些动态Web图形的唯一方法是使用服务器端的脚本,比如GD.pm和CGI/Perl脚本的结合,或者通过System.Drawing名字空间访问ASP.NET中的图形设计接口类库(GDI+)。 
XBM创建起来很有程序性。每个位都被一一指定,而结果图形被限制为两色(黑色和白色)。X-Bitmap并不是必须服务器端脚本,可以在客户端用JavaScript实时创建它们。 
  另外,一些Windows操作系统用户安装程序,往往将安装程序默认安装到系统盘,使得系统盘文件臃肿,导致硬盘页面缓存空间不够,系统越来越慢。网管不妨在注册表中将其程序默认安装路径改为其他盘符。 二、修改ie设置,显示java生成的验证码 
  点击工具--internet选项--安全--自定义级别--察看脚本那一栏--里面有java小程序的脚本和活动脚本如果是禁用点成启用。 
三、修改iis设置,显示asp调用父路径语句生成.bmp格式的验证码 
  在II6里面右键单击所在目录 点击属性对话框里的“主目录”并打开“主目录”界面下的“配置”,打开应用程序配置后,里面有选项,打开它可以看到“父路径”启用“父路径”。

是的,本地调试能正常通过 为什么 服务器上不能正常通过能?笔者通过自己的实战经验得出一些小的建议;
本地能通过如上的方法也试过,所谓的权限问题,父路径 默认脚本等 在虚拟空间上可能 服务空间提供商出于安全考虑 有可能使得问题得到解决 但是笔者用的 独立服务器 在权限设置上都是不会出现种种限制的,但是上述办法中 橙色标注部分 给了我 灵感 如果persits.jpeg 默认的输出图片显示格式就是X-Bitmap(XBM) 而win serv03 就是不支持显示呢? 想到这里问题 迎刃而解  在生成 验证码的 asp页面要加上 输出显示的图片模式 :

Response.ContentType = "Image/BMP"  在最后 给读者一些 启示 不是所有问题网络上都可以找到解决方案但是只要理清思路 一步步考证是可以解决问题的。 --------------------编程问答-------------------- 自己顶一个 --------------------编程问答-------------------- Response.ContentType = "Image/BMP"   这句话解决了我的问题。  我在自己机器上调式正常。传到VPS上后死活显不出来。  
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,