Подтвердить что ты не робот

Получить текущий физический путь приложения в Application_Start

Я не могу получить текущий физический путь в Application_Start с помощью

HttpContext.Current.Request.PhysicalApplicationPath

поскольку в это время объект Запрос отсутствует.

Как еще я могу получить физический путь?

4b9b3361

Ответ 1

 protected void Application_Start(object sender, EventArgs e)
 {
     string path = Server.MapPath("/");
     //or 
     string path2 = Server.MapPath("~");
     //depends on your application needs

 }

Ответ 2

Вы также можете использовать

HttpRuntime.AppDomainAppVirtualPath

Ответ 4

Я создал веб-сайт с ASP.Net WebForms, где вы можете увидеть результат использования всех форм, упомянутых в предыдущих ответах с сайта в Azure.

http://wfserverpaths.azurewebsites.net/

Резюме:


Server.MapPath("/") => D:\home\site\wwwroot\

Server.MapPath("~") => D:\home\site\wwwroot\

HttpRuntime.AppDomainAppPath => D:\home\site\wwwroot\

HttpRuntime.AppDomainAppVirtualPath => /

AppDomain.CurrentDomain.BaseDirectory => D:\home\site\wwwroot\

HostingEnvironment.MapPath("/") => D:\home\site\wwwroot\

HostingEnvironment.MapPath("~") => D:\home\site\wwwroot\

Ответ 5

Вы можете использовать этот код:

AppDomain.CurrentDomain.BaseDirectory

Ответ 6

используйте ниже код

server.mappath() в asp.net

application.startuppath в приложении С# windows

Ответ 7

Существует также статический   HostingEnvironment.MapPath

Ответ 8

System.AppDomain.CurrentDomain.BaseDirectory

Это даст вам текущую директорию вашего приложения. Это даже работает для веб-приложений. Впоследствии вы можете связаться с вашим файлом.

Ответ 9

Тем не менее, есть небольшая разница между всеми этими параметрами, которые

Я узнал, что

Если вы делаете

    string URL = Server.MapPath("~");

или

    string URL = Server.MapPath("/");

или

    string URL = HttpRuntime.AppDomainAppPath;

ваш URL-адрес отобразит ресурсы в вашей ссылке следующим образом:

    "file:///d:/InetPUB/HOME/Index/bin/Resources/HandlerDoc.htm"

Но если вы хотите, чтобы ваш URL показывал только виртуальный путь, а не местоположение ресурсов, вы должны сделать

    string URL = HttpRuntime.AppDomainAppVirtualPath; 

тогда ваш URL-адрес отобразит виртуальный путь к вашим ресурсам, как показано ниже.

    "http://HOME/Index/bin/Resources/HandlerDoc.htm"        

Ответ 10

Лучший выбор -

AppDomain.CurrentDomain.BaseDirectory

поскольку он находится в пространстве имен системы и не зависит от system.web

таким образом ваш код будет более переносимым