Форум программистов, компьютерный форум, киберфорум
C#: ASP.NET Core
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 16.12.2016
Сообщений: 49
1

При сохранении файла ошибка Could not find a part of the path 'D:\BU_test.xml'

24.02.2020, 14:13. Показов 1941. Ответов 11

Пытаюсь сохранить файл xml таким образом
C#
1
xdoc.Save("D:/BU_test.xml");
На локалке все работает, когда закидываю на iis, вылазит ошибка Could not find a part of the path 'D:\BU_test.xml'
Вот файл web.config, думаю, может в нем проблема
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\WebApplication2.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" >
    <environmentVariables>
          <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
        </environmentVariables>
      </aspNetCore>
    </system.webServer>
  </location>
</configuration>
Буду благодарна за любую помощь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2020, 14:13
Ответы с готовыми решениями:

Перенос строк при сохранении XML файла
Здравствуйте. Хочу задать вопрос. Я пытаюсь сохранить древовидные данные в XML файл с помощью...

Ошибка при программировании в среде Dev C++ "No include path in which to find stdio.s"
Здравствуйте! Я недавно начал программировать на ЯП Си. Для этого я выбрал среду Dev C++, но при...

При сохранении xml возникает ошибка, связанная с кодировкой
string str = null; string strRepl = null; StreamReader sr = new...

Spring Multi Part загрузка файла и ошибка при подключении bean id multipartResolver
Пытаюсь реализовать upload файла-картинки на сервер на базе MultiPart механизма Spring В...

11
906 / 791 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
24.02.2020, 14:16 2
а где iis по вашему должен взять диск D?
0
1 / 1 / 0
Регистрация: 16.12.2016
Сообщений: 49
24.02.2020, 14:47  [ТС] 3
Цитата Сообщение от SeIZVeIZ Посмотреть сообщение
а где iis по вашему должен взять диск D?
а можете подсказать, как правильно указать путь, чтоб сохранять файл с iis?
0
646 / 464 / 170
Регистрация: 21.02.2019
Сообщений: 1,689
24.02.2020, 14:57 4
_Lis_, Создайте виртуальный каталог (Virtual Directory) на сайте IIS и в его свойствах укажите путь к папке на диске .. Нужно еще будет настроить разрешения для данной папки ..
1
113 / 81 / 37
Регистрация: 15.02.2020
Сообщений: 206
24.02.2020, 15:12 5
_Lis_,
На локалке все работает, когда закидываю на iis, вылазит ошибка
я правильно понимаю, что iis на другом хосте? А на нем диск d имеется?
1
906 / 791 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
24.02.2020, 16:15 6
_Lis_, обычно это делается как Вам уже описали, создаётся директория в wwwroot например Files, далее используйте относительный путь "Files/BU_test.xml"; и делаете что-то вроде такого:
C#
1
2
3
4
using (var fileStream = new FileStream(_appEnvironment.WebRootPath + path, FileMode.Create))
        {
              xmlDoc.Save(fileStream);
        }
где _appEnvironment это объект типа IWebHostEnvironment который приходит в конструктор контролера.
1
1 / 1 / 0
Регистрация: 16.12.2016
Сообщений: 49
25.02.2020, 11:48  [ТС] 7
спасибо большое) подскажите пожалуйста, а как правильно это сделать, если файл нужно не на сервере сохранять, а у пользователя на компьютере по нажатию на кнопку
0
906 / 791 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
25.02.2020, 11:58 8
_Lis_,
что-то вроде такого вроде бы:
C#
1
2
3
4
5
6
7
8
9
10
[HttpPost]
[MultiButton(MatchFormKey = "action", MatchFormValue = "Save")]
public ActionResult XmlSave()
{
    using (var memoryStream = new MemoryStream())
    {
         xmlDoc.Save(memoryStream);
         return File(memoryStream, MediaTypeNames.Text.Xml, "BU_test.xml");
    }
}
и на странице естественно нужно сделать кнопку которая вызовет это событие чтобы пользователь мог выбрать куда ему сохранить.

p.s. но это всё примеры, надо пробовать, давно не работал с asp делаю по памяти.
1
113 / 81 / 37
Регистрация: 15.02.2020
Сообщений: 206
25.02.2020, 12:05 9
_Lis_, надо уточнить - пользователь нажимает кнопку на странице сайта и ему с сервера возвращает файл, который нужно сохранить?
Если так, то метод контроллера который обрабатывает запрос должен делать примерно так:
C#
1
   return File(содержимое,"application/xml","BU_test.xml");
"содержимое" может быть в разных видах, почитай документацию.
1
1 / 1 / 0
Регистрация: 16.12.2016
Сообщений: 49
25.02.2020, 13:14  [ТС] 10
сейчас у меня в методе
C#
1
2
3
 [HttpPost]
        public string Construct{}
        {
есть код для генерации xml-файла,
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
XDocument xdoc = new XDocument(new XElement("XML",
                     new XAttribute("type", "IMOS_ARTICLE"),
                     new XAttribute("version", '2'),
                   new XElement("ARTICLE",
                    new XElement("ART_NAME", "BU_uni"),
                    new XElement("ART_TYPE", "ANGOLO"),
                    new XElement("ART_DESIGN", ""),
                    new XElement("ART_INFO_LONG", ""),
                    new XElement("ART_INFO_SHORT", "")),
                    new XElement("DEFINITION",
                 new XElement("PARAFOLDER",
                    new XAttribute("name", "dimensions"),
                    new XAttribute("label", "параметры"),
 
                 new XElement("EDITBOX",
                    new XAttribute("LABEL", "ART_SIZEX"),
                    new XAttribute("NAME", "ART_SIZEX"),
                    new XAttribute("VALUETYPE", "TEXT"),
                    new XAttribute("ACTIVE", "true"),
                    new XAttribute("VISIBLE", "FALSE"),
                    new XAttribute("LOCKED", "FALSE"),
                    new XAttribute("GEOINFLUENCING", "true"),
..... и тд

который в конце выводит строку с переменными и этот файл должен быть сохранен на пк пользователя
0
646 / 464 / 170
Регистрация: 21.02.2019
Сообщений: 1,689
25.02.2020, 16:20 11
Цитата Сообщение от _Lis_ Посмотреть сообщение
который в конце выводит строку с переменными
..вот эту строку и сохраняйте в MemoryStream, как предложили выше .. или даже в байтовый массив, его тоже можно отдать через метод File ...
1
1 / 1 / 0
Регистрация: 16.12.2016
Сообщений: 49
26.02.2020, 14:22  [ТС] 12
а не могли бы Вы подсказать, как должен выглядеть вызов этого события, чтоб пользователь мог выбрать, куда сохранять, на сервер файл сохраняется, а вот с сервера не могу его скачать((
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2020, 14:22

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Непонятная ошибка - cannot find symbol: variable Path
import java.util.Scanner; public class deleteMe { public static void main(String args)...

Ошибка при сохранении файла
Хотел сохранить файл. Маткад сказал, что сохранить не может, но есть резервная копия. Вышел из...

Ошибка при сохранении файла
Почему при сохранении файла, если для формирования его имени использовать DateToStr(Now()) и...

Ошибка в методе при сохранении файла
Пытаюсь сохранить контейнер в файл, но выводит ошибку в классе tHouse на строчке 86. Понять не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.