-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,它是网络服务。从 IIS 7.5 开始,它是 IIS APPPOOL\。您应该与管理您的托管服务器的人核实。

于 2013-10-22T05:49:12.117 回答