У меня есть код, который повернуть изображение в моем asp.net C# приложения это мой код:System.Runtime.InteropServices.ExternalException: Произошла общая ошибка в GDI +
protected void ImgBtn180_Click(object sender, ImageClickEventArgs e)
{
try
{
string vImageName = LblFarmId.Text;
string vPath = "~/attachments/survey/" + vImageName + ".jpg";
Image1.ImageUrl = vPath;
//get the path to the image
string path = Server.MapPath(vPath);
//create an image object from the image in that path
System.Drawing.Image img = System.Drawing.Image.FromFile(path);
//rotate the image
img.RotateFlip(RotateFlipType.Rotate180FlipXY);
//save the image out to the file
img.Save(path);
//release image file
img.Dispose();
Random rnd = new Random();
Image1.ImageUrl = vPath + "?" + rnd;
}
catch (Exception ee)
{
LblCatchError.Text = ee.ToString();
}
}
, когда я запускаю его на сервер, я иногда получаю ошибку
System.Runtime.InteropServices.ExternalException: Общая ошибка произошла в GDI +. в System.Drawing.Image.Save (Строка имени файла, ImageCodecInfo кодировщика, EncoderParameters encoderParams) в System.Drawing.Image.Save (String имя файла, формат ImageFormat) в System.Drawing.Image.Save (String имя файла)
, а иногда и погрешность
System.OutOfMemoryException: Недостаточно памяти. в System.Drawing.Image.FromFile (String имя файла, Boolean useEmbeddedColorManagement) в System.Drawing.Image.FromFile (Строка имя файла)
Я прочитал все статьи и решения по поводу этой ошибки, и ничего не получалось. Некоторые сказали: «Убедитесь, что в требуемой папке есть разрешения на чтение/запись». имеет разрешения ..
некоторые сказали: «вы должны удалить объект изображения, чтобы освободить память на сервере». , У меня уже есть код img.Dispose(); для выпуска файла изображения,
В чем может быть проблема в коде? любой совет?
[использовать, наконец, в конце вашего улова блока TRY] (http://stackoverflow.com/questions/10984336/net-using-using-blocks-vs-call-dispose) или попробуйте использовать [using statement] (http://stackoverflow.com/questions/2808753/right-way-to-dispose-image-bitmap-and-picturebox). Мне любопытно, какие статьи вы прочитали об этом? – lloyd
Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –
, так что вы думаете, что я должен использовать его внутри? как это? .... using (System.Drawing.Image img = System.Drawing.Image.FromFile (путь)) { // вращать изображение img.RotateFlip (RotateFlipType.Rotate180FlipXY); // сохранить изображение в файле img.Save (path); // релиз файла изображения img.Dispose(); } – amal50