GDI中发生一般错误

时间:2013-10-22 05:04:18

标签: asp.net asp.net-mvc c#-4.0 razor

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 +中发生了一般错误”。     那怎么能解决这个错误。

1 个答案:

答案 0 :(得分:0)

由于缺少权限,这个错误总是会出现。事实上,它在一个环境中工作而不是另一个环境,这几乎证实了这种情况。执行ASP.NET进程的用户帐户需要对尝试保存映像的位置具有写权限。

您授予此权限的帐户取决于您使用的IIS版本。对于IIS 6和7,它是NETWORK SERVICE。从IIS 7.5开始,它是IIS APPPOOL \。您应该与管理托管服务器的人进行核对。