prabhakar78 Ответов: 3

Как найти то, что нужно asp.net физический путь приложения


Привет я использую консольное приложение внутри asp.net приложение для отправки html шаблона через
mail.but он будет отображать сообщение об ошибке не удалось найти часть пути.я использую httpcontext
чтобы найти путь есть ли другой способ найти путь без использования httpcontext.my код есть

способ 1:
// const string TemplatePath = "~/HTMLPage.htm";//ошибка может найти путь
// //var reader = новый StreamReader(TemplatePath).ReadToEnd();

способ 2;
//// StreamReader reader = новый StreamReader(System.Web.HttpContext.Current.Сервер.Маппат ("~/HTMLPage.htm")); ошибка


я использую приложение conosole как отдельный проект внутри asp.net применение.если у кого-то есть
любая идея, как указать путь, поможет мне.

		    
                    

3 Ответов

Рейтинг:
2

Sergey Alexandrovich Kryukov

Вопрос не совсем ясен. В Ан ASP.NET код-за кодом, вы, конечно, должны использовать MapPath Для вашего отдельного приложения, которое вы выполняете на сервере, эта функция не означает ничего определенного. Таким образом, вы можете найти путь, по которому находится текущее запущенное приложение:

string exeDir = System.IO.Path.GetDirectoryName(
   System.Reflection.Assembly.GetEntryAssembly().Location;


Кстати, есть много других способов найти этот путь, но некоторые из них не универсальны, они работают некорректно для некоторых способов размещения приложения и т.д. Метод, который я показываю, универсально верен.

—СА


Рейтинг:
1

Vi(ky

если вы храните файл в папке bin, то вы можете сделать вот так

string fileName = "HTMLPage.htm";            
string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName);


prabhakar78

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

Vi(ky

при запуске консольного приложения в папке run from debug/ release внутри папки bin. чтобы получить доступ к вашему html-файлу, вы должны поместить его в папку debug/ или release & затем вы можете использовать
строковое имя файла = "HTMLPage.htm";
строку папку = путь.GetDirectoryName(Сборка.GetExecutingAssembly().Местоположение);
строка filePath = путь.Объединить(папка, имя файла);

prabhakar78

ОК благодарим вас

Рейтинг:
0

Member 12818842

Следующая строка кода будет работать.

Система VAR appPath=.Веб.Хостинг.Принимающая среда.ApplicationPhysicalPath;

Это даст вам физический путь. Вы можете конкатенировать с подпапкой дальше.


CHill60

На самом деле эта строка кода не будет. Он даже не будет компилироваться. Я думаю, вы имели в виду

string physicalPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;

Member 12818842

Да, это то же самое.