Перестает работать кусок кода ASP.NET- CORE после публикации на сервере

210
19 февраля 2018, 00:17

Господа, нужен Ваш опыт и совет, сам я новичек, поэтому многие вещи непонятны.

В проекте есть 2 docx файла, один из них 'Etp.docx' - является шаблоном, второй - 'Doc.docx' формируется на подобии первого, с заменой определенных строк в документе. По нажатию кнопки, пользователь получает сформированный документ, который загружается с сервера.

Вот код:

    [HttpPost]
    public async Task<IActionResult> CreateWordFile(int id, ETP_Main main)
    {
        main = await _context.ETP_Mains.SingleOrDefaultAsync(m => m.ETP_MainId == id); 
        var webRoot = _env.WebRootPath; //явно указываю путь к папке wwwwroot
        var pathEtp = Path.Combine(webRoot, "files", "Etp.docx"); //путь к шаблону
        var pathDoc = Path.Combine(webRoot, "files", "Doc.docx"); //путь к файлу который буду заполнять
        //READ-WRITE FILES MICROSOFT OFFICE WORD
        using (WordprocessingDocument  wEtp = WordprocessingDocument.Open(pathEtp, true)) //открываю файл Etp.doc
        {
            string docText = null;
            using (StreamReader sr = new StreamReader(wEtp.MainDocumentPart.GetStream())) //создаю поток чтения
            {
                 docText = sr.ReadToEnd(); //читай файл
                 sr.Close();
            }
            if (title.ObjName != null) docText = Regex.Replace(docText, "T0", title.ObjName); //заменяю метки в тексте на свои значения с БД
            else docText = Regex.Replace(docText, "T0", " ");
            using (WordprocessingDocument wDoc = WordprocessingDocument.Open(pathDoc, true)) //открываю файл в который буду вносить изменения
            {
                using (StreamWriter sw = new StreamWriter(wDoc.MainDocumentPart.GetStream(FileMode.Create))) //создаю поток записи
                {
                    sw.Write(docText); //записываю текст в новый файл
                    sw.Close();
                }
                wDoc.Close();
            }
            wEtp.Close();
        }
        return RedirectToAction(nameof(Dowload)); //переход на загрузку файла
    }
    [HttpGet]
    public PhysicalFileResult Dowload() //метод загрузки документа
    {
        var webRoot = _env.WebRootPath; //явно указываю путь к папке wwwroot
        var pathFile = Path.Combine(webRoot, "files", "Doc.docx");
        return PhysicalFile(pathFile, "application/msdoc", "Doc.docx");
    }
}

Собственно, все работает на стадии компиляции и отладки, но после публикации проекта (публикуюсь через File System) и установки его на сервер Window Server 2016 перестает работать вышеуказанный код (не формируется и не загружается с сервера Doc.docx). Проставил комментарии, куда копать, в код, в сервер? Может кто сталкивался с таким. Выложу любую доп. информацию которую запросите.

READ ALSO
WPF Отображение данных из Com-порта

WPF Отображение данных из Com-порта

Есть устройство (весы), которое на Com-порт кидает со скоростью 10 раз в секунду значение (текстовая строчка)Мне нужно написать приложение позволяющее...

208
Отобразить раздел attach с иcпользованием xaml

Отобразить раздел attach с иcпользованием xaml

Пытаюсь сделать почтовый клиентВозникла проблема с xaml

230
Не работает прокрутка в DataGrid - C# WPF/.NET 4.x

Не работает прокрутка в DataGrid - C# WPF/.NET 4.x

Я создал проект в WPF C#Я использовал DataGrid

192