powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Рабочая папка приложения ASP.NET
10 сообщений из 10, страница 1 из 1
Рабочая папка приложения ASP.NET
    #32214260
Orion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подкажите как определить рабочую папку приложения.
Ту, откуда оно стартует
...
Рейтинг: 0 / 0
Рабочая папка приложения ASP.NET
    #32214292
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
String FilePath;
FilePath = Server.MapPath("/MyWebSite");
...
Рейтинг: 0 / 0
Рабочая папка приложения ASP.NET
    #32214765
voodoos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так получше будет:
Код: plaintext
this.Page.Request.PhysicalApplicationPath
...
Рейтинг: 0 / 0
Рабочая папка приложения ASP.NET
    #32511269
Туповатый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, все это хорошо, но я хочу получить Path в
Sub Application_Start(), когда еще нет Response ("недоступно в данном контексте"), a Server.MapPath("\") возвращает "c:\inetpub\wwwroot\", в то время как на самом деле все находится где-то на d:\myProjects\...
...
Рейтинг: 0 / 0
Рабочая папка приложения ASP.NET
    #32511296
Фотография nex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дык это пока ты его разрабатываешь он там лежит, а когда им будут пользоваться, оно будет лежать в wwwroot, или там, куда ISS будет твой виртуальный каталог мапить. В любом случае Server.MapPath("/") будет показывать на корень твоего приложения, а от туда можно плясать, куда угодно. На то он и relative path, а не absolute :).

Я например в Application_Start() беру Server.MapPath("/") для того, чтобы потом показать приложению, куда писать логи...
...
Рейтинг: 0 / 0
Рабочая папка приложения ASP.NET
    #32511369
Туповатый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, пока разрабатываю, но отлаживаю в своей интрасети. И там, на d:\....,
куда отводит виртуальный каталог IISа все лежит и Request.PhusicalAppPath() в рамках сессии тоже туда же отводит. Но повторяю: хочу прочитать настроечные .XML в момент старта, до регистрации первой сессии, до возможности воспользоваться Requestом. Так как все-таки это сделать?
...
Рейтинг: 0 / 0
Рабочая папка приложения ASP.NET
    #32511371
Туповатый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, пока разрабатываю, но отлаживаю в своей интрасети. И там, на d:\....,
куда отводит виртуальный каталог IISа все лежит и Request.PhusicalAppPath() в рамках сессии тоже туда же отводит. Но повторяю: хочу прочитать настроечные .XML в момент старта, до регистрации первой сессии, до возможности воспользоваться Requestом. Так как все-таки это сделать?
...
Рейтинг: 0 / 0
Рабочая папка приложения ASP.NET
    #32511419
Фотография nex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хмм, Request тебе не нужен. Вот например код Application_Start() из моего Global.asa.cs
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
protected void Application_Start(Object sender, EventArgs e)
{
   this.Application.Clear();
			
   // Read application configuration
   Configurator c = new Configurator(Server.MapPath("conf/app.config"));
			
   string provider = c.GetConfigParam("datasource", "provider");
   string server = c.GetConfigParam("datasource", "server");
   string username = c.GetConfigParam("datasource", "username");
   string passwd = c.GetConfigParam("datasource", "passwd");
   string catalog = c.GetConfigParam("datasource", "catalog");
   this.Application["SLogPath"] = c.GetConfigParam("logging", "securityLogPath");
   this.Application["ALogPath"] = c.GetConfigParam("logging", "authLogPath");			
   c.Close();

   // Create database object and store it on the application level
   _db = new OleDbDataSource(provider, server, username, passwd, catalog);
   this.Application["db"] = this._db; 
   _db.Close();
}

Код: plaintext
1.
Server.MapPath("conf/app.config")
Возвращает полный путь к файлу: c:\Inetpub\wwwroot\myapp\conf\app.config

Попробуй запустить приложение, и кликнув правой кнопкой на одну из страничек в IE, выбери Properties. Посмотри куда показывает Address (URL) строка?
...
Рейтинг: 0 / 0
Рабочая папка приложения ASP.NET
    #32511421
Фотография nex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Млин.. не проснулся еще Я :) Не обращай внимание на последнее предложение :-)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Рабочая папка приложения ASP.NET
    #33608817
OM-600
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа,
Намедни я озадачился точно такой же проблемой. Мой вариант решения:

Код: plaintext
1.
2.
3.
4.
5.
protected void Application_Start(Object sender, EventArgs e)
{
    string appPath = Server.MapPath("~"); // get app ROOT path
    // ... do wat u want with appPath
}

Принципиальное отличие от предложеного ранее решения - отвязка от application start page, на которую в ряде случаев может идти зависимость. Пример - приложение стартует не вместе с сервером, а по первовому запросу на какой-то веб-артифакт внутри. В этом случае Server.MapPath("conf") вернет путь равный папке, где лежит запрашиваемый ресурс (e.g aspx-file) плюс хвост "conf".
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Рабочая папка приложения ASP.NET
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]