Asp.net GDI中发生一般性错误
您好,这段代码在本地服务器上运行良好,当将这段代码放到实时服务器上时,我收到了错误“GDI+中发生了一个通用错误”。Asp.net GDI中发生一般性错误,asp.net,asp.net-mvc,c#-4.0,razor,Asp.net,Asp.net Mvc,C# 4.0,Razor,您好,这段代码在本地服务器上运行良好,当将这段代码放到实时服务器上时,我收到了错误“GDI+中发生了一个通用错误”。 那么如何解决这个错误呢。这个错误总是因为缺乏权限而出现的。事实上,它在一个环境中工作,而不是在另一个环境中工作,这在很大程度上证实了这是您案例中的原因。ASP.NET进程正在其下执行的用户帐户需要在您尝试保存映像的位置上具有写入权限 您授予此权限的帐户取决于您使用的IIS版本。对于IIS 6和7,它是网络服务。在IIS 7.5中,它是IIS APPPOOL\。你应该向管理你的主机
那么如何解决这个错误呢。这个错误总是因为缺乏权限而出现的。事实上,它在一个环境中工作,而不是在另一个环境中工作,这在很大程度上证实了这是您案例中的原因。ASP.NET进程正在其下执行的用户帐户需要在您尝试保存映像的位置上具有写入权限
您授予此权限的帐户取决于您使用的IIS版本。对于IIS 6和7,它是网络服务。在IIS 7.5中,它是IIS APPPOOL\。你应该向管理你的主机服务器的人咨询。GDI+图像处理和asp.net很棘手(根据自己的经验),检查内部异常,请参见“嗨”,谢谢你的回复。我已更改服务器中的所有权限。但我再次收到错误“访问路径D:\…\\images\\image1.png被拒绝”。能否给我另一个解决方案。您的错误消息确认权限仍然存在问题。仔细检查路径和用户权限。
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;
}