Как я получаю полный виртуальный тракт приложения ASP.NET

Эта строка решила мою проблему:

<%#DateTime.Parse(Eval("DDDate").ToString()).ToString("dd-MM-yyyy")%>
33
задан pgb 31 May 2009 в 20:10
поделиться

4 ответа

Часть пути, содержащая имя домена, на самом деле не является свойством самого приложения, а зависит от запрашивающего URL. Вы можете получить доступ к одному веб-сайту с разных имен хостов. Чтобы получить имя домена, связанное с текущим запросом , вместе с виртуальным путем текущего приложения, вы можете сделать:

Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath

Технически «приложение» - это виртуальный каталог, определенный в IIS и ] Request.ApplicationPath возвращает именно это. Если вы хотите получить папку, в которой обрабатывается текущий запрос , вы можете сделать это:

VirtualPathUtility.GetDirectory(Request.Path)

ASP.NET не знает, как отличить ваше подчиненное приложение от более крупного приложения, если оно не определено как виртуальный каталог в IIS. Без регистрации в IIS,

73
ответ дан 27 November 2019 в 17:33
поделиться

Попробуйте это (не пробовал)

public string GetVirtualPath(string physicalPath)
{
string rootpath = Server.MapPath("~/");
physicalPath = physicalPath.Replace(rootpath, "");
physicalPath = physicalPath.Replace("\\", "/");
return "~/" + physicalPath;
}

Ссылка 1

Ссылка 2

2
ответ дан 27 November 2019 в 17:33
поделиться
Request.Url

он содержит несколько моментов, которые вы можете использовать, см. Изображение ниже:

enter image description here

18
ответ дан 27 November 2019 в 17:33
поделиться

Приведенный ниже код решит эту задачу, однако вам необходимо выполнить небольшую настройку для двух типов сценариев:

  1. Размещено как отдельное веб-приложение.
  2. Размещено как виртуальное приложение в рамках веб-приложение.

    HttpContext.Current.Request.Url.GetLeftPart (UriPartial.Authority) + HttpRuntime.AppDomainAppVirtualPath;

4
ответ дан 27 November 2019 в 17:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: