nopcommerce Произошла ошибка диска во время операции записи. (Исключение из HRESULT: 0x8003001D (STG_E_WRITEFAULT))
Я работаю в NopCommerce Solution 3.90, при импорте продуктов из файла Excel я получаю это исключение. мой код следующий
public virtual void ImportProductsFromXlsx(Stream stream)
{
try
{
#region Import business Logic
using (var xlPackage = new ExcelPackage(stream))
{
//get the first worksheet in the workbook
var worksheet = xlPackage.Workbook.Worksheets.FirstOrDefault();
if (worksheet == null)
throw new NopException("No worksheet found");
//the columns
var properties = GetPropertiesByExcelCells<Product>
(worksheet);
var manager = new PropertyManager<Product>
(properties);
var attributProperties = new[]
.....
.....
}
}
StackTrace: -
в OfficeOpenXml.Utils.CompoundDocument.ILockBytes.WriteAt(Int64 ulOffset, IntPtr pv, Int32 cb, UIntPtr& pcbWritten) в OfficeOpenXml.Utils.CompoundDocument.GetLockbyte(поток MemoryStack), потоковый поток в выходной памяти OfficeOpenXml.Exp.) в OfficeOpenXml.ExcelPackage.Load (поток ввода) в OfficeOpenXml.ExcelPackage..ctor (поток newStream) в файле Nop.Services.ExportImport.ImportManager.ImportProductsFromXlsx (поток потока) в d:\Arsh\nop3.90\Libraries\Nop. Сервисы \ExportImport\ImportManager.cs: строка 330
Решения, которые я попробовал:
- Сохранение файла для загрузки с использованием расширения.xlsx.
- Использование объекта Memorystream.
- Добавление имени файла, например (Worksheets.Add("Имя листа");)
- Удаление текста заголовка (то есть столбцы заголовка, такие как Имя, описание и т. Д.)
PS Я пользуюсь Nopcommerce. Это встроенный код импорта товаров.
1 ответ
Пожалуйста, попробуйте Excel 2010+, так как более ранние версии Excel отличаются алгоритмом шифрования / дешифрования.
Вы можете прочитать больше о шифровании / дешифровании здесь.