验证码是 图片流 直接画出来的.在login界面 引用的地方
在本机调试的时候没问题,传到服务器上后 就看不到了,一个小红点"ValidateCode.aspx 和 cs文件都传到虚拟目录下 也不行....求救字体也已经在服务器上安装了,服务器是server2003

解决方案 »

  1.   


    ValidateCode.aspx和 login.aspx 都在一个目录下啊
      

  2.   

    是不是windows服务器IIS没有开启父路径?
      

  3.   

    我来告诉你 有一个服务没有开 我记得好像是 ASP.NET STATE
    还有一个可能就是 在配置服务器里面 勾选 启动父路径
      

  4.   


    恩 asp.net 账户 权限设成完全控制了 还是不行
      

  5.   


    父路径打钩了  asp.net 状态服务 也开启了.......还是不行
      

  6.   

    是虚拟目录要采用同级目录下的文件路径“/ValidataCode.aspx",根目录不需要考虑到这个可以采用“~/ValidataCode.aspx",这样来试试
      

  7.   

    看看你的项目路径 是否 给了 这个路径权限。 有时候  有人会把  验证码这个东西 写到 后台管理路径。而前台又去用它   导致的。  你可以在  Web.Config  里面 给下权限。看看。
      

  8.   

    ValidataCode.aspx 文件是否在你根目录下?不在的话 你的 img src=""引用地址就没写对 加个绝对路径试试
      

  9.   


    加了 在本机没有问题 在服务器上还是看不到.....我设置了宽度 加了 ruanat 变服务器控件 还是不行
      

  10.   

    你这个  把图片转化为流的   形式不对    少了一部分流    重新写个  转换刘的方法吧  FileStream fs = File.OpenRead(txtImagePath.Text);
                    byte[] imageb = new byte[fs.Length];
                    fs.Read(imageb, 0, imageb.Length);
                    fs.Close();
     
      

  11.   

    我就是这啊
    我昨天 发布的网页但是今天去不能显示了在IIS中浏览的时候。。
    我开始是利用的内存流保存验证图片。
    但是,最后想了想,如果要用的话也应该是服务器的啊,但是客户机是采用自己的 ...。打给吧
    我给你我刚才解决的代码::
       //--清除缓冲区所有 内荣
                Response.ClearContent();
                //--设置输出流的MINI 类型
                Response.ContentType = "image/png";
                //--将2进制图像流写入到 二级制中
                gv_gps.Dispose();
                gv_bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                Response.End();
      

  12.   

    在附上 我的验证码,方法,
    通过设置不同的参数可以实现不能的效果,
    此页面 是一个验证码图片::using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Drawing.Text;
    public partial class VaryCode : System.Web.UI.Page
    {
       //--绘图主题
        //gv =全局变量  tv =临时变量 med =方法    //---------------要使用的变量和类型
        /// <summary>
        /// 随记生成 四位 
        /// </summary>
        Random gv_rand;
        /// <summary>
        /// 定义画笔数组
        /// </summary>
        Brush[] gv_brush = { Brushes.Aqua, Brushes.Black, Brushes.Red, Brushes.Green, Brushes.Pink, Brushes.Yellow, Brushes.PaleGreen, Brushes.Blue };
        /// <summary>
        /// 创建2个画笔对象  第一个 为倾斜,第二个为中间有横线穿过
        /// </summary>
        Font[] gv_font = { new Font(new FontFamily(GenericFontFamilies.SansSerif), 15, FontStyle.Italic), new Font(new FontFamily(GenericFontFamilies.Monospace), 15, FontStyle.Strikeout) };    /// <summary>
        /// 指定画板
        /// </summary>
        Graphics gv_gps;
        /// <summary>
        /// 要承载 验证码的位图
        /// </summary>
        Bitmap gv_bmp;
        /// <summary>
        /// 静态值用于进行画笔的随机选择
        /// </summary>
        static int rnum = 0;    //--------------------------------------------定义方法区
        /// <summary>
        /// 返回 随记生成的 N 位数的 字符串形式,
        /// </summary>
        /// <param name="digit">指定的位数</param>
        /// <returns>返回字符串</returns>
        public string med_recRandnum(int digit)
        {
            if (digit >= 3 && digit <= 8)
            {
                //--根据位数获取最大值和最小值
                //如制定了 5 位,那么最小值为 10000,最大值为 99999            double minnum = Math.Pow(10, digit - 1);
                double maxnum = Math.Pow(10, digit) - 1;
                gv_rand = new Random((int)DateTime.Now.Ticks);            int recnum = gv_rand.Next((int)minnum, (int)maxnum);
                //--返回字符数组
                return recnum.ToString();
            }
            else
                return null;
        }
        string strvalue;
        /// <summary>
        /// 绘制数字验证码
        /// </summary>
        /// <param name="digit">指定绘制的数字的位数</param>
        /// <param name="pic_width">指定验证码的宽度 参考值: 6位数字80</param>
        /// <param name="pic_height">指定验证码高度  参考值: 6位数30</param>
        /// <param name="bgcolor">指定验证码图片的背景颜色 参考值:Color.Plum </param>
        /// <param name="split_width">指定验证码图片的竖型干扰条码间隔 参考值:2</param>
        /// <param name="split_color">指定验证码图片的竖型干扰码颜色 参考值 :Color.Black</param>
        /// <param name="word_split">指定个个验证码数字之间的宽度  参考值:13</param>
        /// <param name="thevalue">返回的out型参数,返回验证码的实际值</param>
        /// <returns name="MemoryStream">将验证码图片写入到内存流中</returns>
        public void med_drawVerifyCode(int digit, int pic_width, int pic_height, Color bgcolor, int split_width, Color split_color, int word_split, out string thevalue)
        {
            //得到 随机值
            string numbs = med_recRandnum(digit);
            if (numbs != null)
            {
                gv_bmp = new Bitmap(pic_width, pic_height);
                gv_gps = Graphics.FromImage(gv_bmp);
                //用背景色填充
                gv_gps.Clear(bgcolor);
                //绘制干扰色
                for (int i = 0; i < pic_width; i += split_width)
                {
                    for (int j = 0; j < pic_height; j++)                    gv_bmp.SetPixel(i, j, split_color);
                }
                //--绘制我们的数值
                for (int i = 0; i < digit; i++)
                {                gv_gps.DrawString(numbs[i].ToString(), gv_font[i % 2], gv_brush[(rnum++) % 8], i * word_split, Math.Abs(i - 3));
                }           
              
             
                Session["vcode"] = strvalue;
                //--清除缓冲区所有 内荣
                Response.ClearContent();
                //--设置输出流的MINI 类型
                Response.ContentType = "image/png";
                //--将2进制图像流写入到 二级制中
                gv_gps.Dispose();
                gv_bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                Response.End();
                thevalue = numbs; 
              
          
            }
            else
            {            //---错误,在3-8位之间
                thevalue = "noexit";
                
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
          
            if (!IsPostBack)
            {
              
                //System.IO.MemoryStream ms = vcode.med_drawVerifyCode(4, 60, 30, Color.Plum, 6, Color.Black, 10, out strvalue);
                // string strvalue;
                //Session["vcode"] = strvalue;
                ////--清除缓冲区所有 内荣
                //Response.ClearContent();
                ////--设置输出流的MINI 类型
                //Response.ContentType = "image/png";
                ////--将2进制图像流写入到 二级制中
                //Response.BinaryWrite(ms.ToArray());            //Response.End();
                string strvalue;            med_drawVerifyCode(4, 60, 30, Color.Plum, 6, Color.Black, 10, out strvalue);        }
        }
    }