Как получить путь к файлу в ядре Asp.net для работы в Azure Dev Ops - PullRequest
0 голосов
/ 02 мая 2019

Пытаюсь прочитать содержимое текстового файла. Поэтому я использую строку кода ниже, он работает в местном.

 string src = @"Templates\UserMailTemplate.txt";
 string[] content = System.IO.File.ReadAllLines(src);

После размещения в Azure Dev Ops. Получаю проблему как Не удалось найти файл 'D: \ home \ site \ wwwroot \ Templates \ UserMailTemplate.txt'.

Server.Mappath не работает в ASP.Net Core.

Пожалуйста, дайте мне знать, как я могу решить эту проблему в DEV ops.

1 Ответ

0 голосов
/ 02 мая 2019

Причина вашей проблемы в сообщении об ошибке: Could not find file.Это, вероятно, означает, что файл либо не опубликован, либо не опубликован в том месте, где вы его ожидаете.

Пожалуйста, подтвердите, что вы ищете в правильном месте.

Чтобы включить наличие файлов после публикации, либо
1. Посмотрите на IHostingEnvironment и его свойства
2. Установите Действие сборки в Content и получить к нему доступ, используя Application.GetContentStream
3. Установите для параметра «Действие сборки» значение Embedded Resource и вызовите Assembly.GetManifestResourceStream, чтобы прочитать файл из сборки
4. Установите Copy to Output Directory в значение Copy always или * 1019.* и доступ к файлам в выходном каталоге

«Немного» не по теме
Пожалуйста, обратите внимание на совершенно другой способ управления почтовыми шаблонами вAzure.Самое простое изменение по сравнению с тем, что вы делаете сейчас, - это, вероятно, хранить их в хранилище Azure .
Если вы продолжаете использовать файлы, обратитесь к этому совету Azure: Работа с файлами в AzureСлужба приложений

...