دسته بندی ها
01:11 1399/06/19

رفع خطای not enough meory to compelete operation هنگام آپلود عکس

مشخصات سوال کننده :
کاربر : hoseyn7832     امتیاز کاربر : 5     رتبه کاربر : 110
دسته بندی : Asp.net Core

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2065
1 نظر
fateme : خطایی که شما دارید مربوط به پر بودن حجم هارد سیستم شما نیست. منظور از memory یعنی رم سیستم. شما مطمئن هستید که رم سیستم کم نیست ؟ یا اینکه نرم افزاری باز نیست که رم رو درگیر کرده ؟

امتیاز کاربر : 1635   رتبه کاربر : 2   تاریخ ثبت : 02:15 1399/06/20
هوش مصنوعی

پاسخ هوش مصنوعی

برای رفع خطای system out of memory exception در هنگام آپلود عکس، می توانید یکسری اقدامات زیر را انجام دهید:

1. **بررسی محدودیت حافظه:** مطمین شوید که سرور IIS شما به اندازه کافی حافظه برای پردازش فایل های آپلود شده دارد. می توانید از تنظیمات سرور برای افزایش مقدار حافظه استفاده کنید.

2. **کاهش اندازه تصاویر:** در صورتی که تصاویر آپلودی حجم بالایی دارند، بهتر است قبل از آپلود آنها، اندازه تصاویر را کاهش دهید. این کار می تواند با استفاده از کتابخانه هایی نظیر ImageSharp یا System.Drawing انجام شود.

برای تغییر سایز تصاویر، می توانید کد زیر را در متد Resize که استفاده می شود، قرار دهید:

using (var image = System.Drawing.Image.FromFile(imagePath))
{
    var newWidth = 800; // عرض جدید
    var newHeight = 600; // ارتفاع جدید
    var resizedImage = new Bitmap(image, new Size(newWidth, newHeight));
    resizedImage.Save(newPath);
}

3. **استفاده از غیرهمزمانی:** در حال حاضر شما از file.CopyToAsync(fs) استفاده کرده اید، اما برای اطمینان از اینکه بارگذاری به درستی انجام می شود، توصیه می شود از await برای متد CopyToAsync استفاده کنید. به این ترتیب کد شما باید به صورت زیر باشد:

await file.CopyToAsync(fs);

4. **چک کردن مسیر ذخیره سازی:** مطمین شوید که مسیری که برای ذخیره فایل ها انتخاب کرده اید، درست است و اجازه نوشتن در آن وجود دارد. خطای ناشی از دسترسی می تواند مشکلاتی شبیه به حافظه ناکافی ایجاد کند.

5. **استفاده از try-catch:** برای عیب یابی بهتر، از try-catch در متد uploadfiles استفاده کنید تا جزییات بیشتری از خطا را به دست آورید.

try
{
    // کد بارگذاری تصویر
}
catch (Exception ex)
{
    // ثبت خطا
    Console.WriteLine(ex.Message);
    throw;
}

6. **حداکثر حجم فایل:** اطمینان حاصل کنید که تنظیمات IIS برای حداکثر اندازه فایل آپلود به اندازه کافی بزرگ است. می توانید به این صورت تنظیم نمایید:

<system.webServer>
    <security>
        <requestFiltering>
            <requestLimits maxAllowedContentLength="104857600" /> 
        </requestFiltering>
    </security>
</system.webServer>

با پیاده سازی این موارد، باید بتوایند خطای حافظه ناکافی را رفع کرده و بارگذاری تصاویر را به درستی انجام دهید. اگر همچنان با مشکل مواجه شدید، می توانید اطلاعات بیشتری از خطا را بررسی کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 17:10 1399/12/18

احتمالا وقتی پروژه رو اجرا می کنید حجم زیادی از Ram سیستم شما درگیر هست. یا برنامه ای توی Ram باز دارید که حافظه شما رو اشغال کرده یا ممکنه خود پروژه شما خیلی سیستم رو درگیر کرده.

پروژه رو اجرا کنید و TaskManager ویندوز رو باز کنید و در سربرگ Process ببینید چه برنامه ای حجم Ram شما رو اشغال کرده.

 

 

not enouph memory to complete operation

ویرایش شده در دوشنبه 18 اسفند 1399 ساعت 17:11:04
به این پاسخ امتیاز بدهید    0
امتیاز: 1635 رتبه: 2
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود