0

基本的なキャプチャ スクリプトを作成している ASP.net 2.0 c# プロジェクトに取り組んでいます。html は次のようになります。

<img height="30" width="80" alt="" src="Captcha.aspx" />

これがCaptcha.aspxのコードビハインドです

    protected void Page_Load(object sender, EventArgs e)
    {
        Bitmap objBMP = new System.Drawing.Bitmap(60, 20);
        Graphics objGraphics = System.Drawing.Graphics.FromImage(objBMP);
        objGraphics.Clear( ColorTranslator.FromHtml( "#054196" ) );

        objGraphics.TextRenderingHint = TextRenderingHint.AntiAlias;

        // configure the text
        Font objFont = new Font("Arial", 8, FontStyle.Bold);
        string randomStr = "";
        int[] myIntArray = new int[5];
        int x;

        // randomise the text
        Random autoRand = new Random();

        for (x = 0; x < 5; x++)
        {
            myIntArray[x] = System.Convert.ToInt32(autoRand.Next(0, 9));
            randomStr += (myIntArray[x].ToString());
        }

        //add string to session
        Session.Add("randomStr", randomStr);

        // draw the text
        objGraphics.DrawString( randomStr, objFont, Brushes.White, 3, 3);

        // Set the content type and return the image
        Response.ContentType = "image/jpeg";
        Encoder quality = Encoder.Quality;
        EncoderParameter qualityParam = new EncoderParameter(quality, 100L);
        EncoderParameters encParams = new EncoderParameters( 1 );
        encParams.Param[0] = qualityParam;
        ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
        objBMP.Save(Response.OutputStream, jpgEncoder, encParams);

        objFont.Dispose();
        objGraphics.Dispose();
        objBMP.Dispose();
        Response.Flush();
    }


    private ImageCodecInfo GetEncoder(ImageFormat format)
    {

        ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();

        foreach (ImageCodecInfo codec in codecs)
        {
            if (codec.FormatID == format.Guid)
            {
                return codec;
            }
        }
        return null;
    }

これはローカル マシンでは問題なく動作しますが、開発サーバーにアップロードすると失敗します。プロジェクトでの私の役割のために、開発サーバーに直接アクセスしてデバッグすることはできないため、試行錯誤を繰り返しています。

何か案は?

4

1 に答える 1

0

何らかの理由でサーバーが aspx ページを気に入らなかったことがわかりました。キャプチャをashxファイルに移動したところ、うまくいきました!

于 2012-09-12T06:55:01.923 に答える