-1
public static string DrawImage(string WorkDirectory, string oldImage, string WaterMarkImage, string waterMarkText, int XCoord, int YCoord, string NewImageName)
        {
            MemoryStream msNew = new MemoryStream();
            MemoryStream msOut = new MemoryStream();

            Bitmap bmp = new Bitmap(WorkDirectory + "\\" + oldImage);
            Bitmap bmpWm = new Bitmap(WorkDirectory + "\\" + WaterMarkImage);
            Bitmap bmpTemp = new Bitmap(bmp);
            Graphics canvas = Graphics.FromImage(bmpTemp);
            bmp.Dispose();
            try
            {
                using (Graphics gr = Graphics.FromImage(bmpTemp))
                {
                    gr.DrawImage(bmpWm, new Rectangle(XCoord, YCoord, bmpWm.Width, bmpWm.Height), 0, 0, bmpWm.Width, bmpWm.Height, GraphicsUnit.Pixel);
                }
            }
            catch(Exception ex)
            {
                string errorMessage = "Error occurred during submission.";
               return errorMessage;
            }
            bmpTemp.Save(WorkDirectory + "\\" + NewImageName, ImageFormat.Png);

            bmpTemp.Dispose();
            return WorkDirectory + "\\" + NewImageName;
        }

こんにちは、このコードはローカル サーバーで正常に動作しています。このコードをライブ サーバーに配置すると、「GDI+ で一般的なエラーが発生しました」というエラーが表示されます。どうすればこのエラーを解決できますか。

4

1 に答える 1

0

このエラーは、アクセス許可がないために必ず発生します。ある環境では機能し、別の環境では機能しないという事実は、それがあなたの場合の原因であることをほぼ裏付けています。ASP.NET プロセスを実行しているユーザー アカウントには、イメージを保存しようとしている場所に対する書き込みアクセス許可が必要です。

このアクセス許可を付与するアカウントは、使用している IIS のバージョンによって異なります。IIS 6 および 7 の場合は、NETWORK SERVICE です。IIS 7.5 以降は IIS APPPOOL\ です。ホスティング サーバーの管理者に確認する必要があります。

于 2013-10-22T05:49:12.117 に答える