Как я определяю, является ли выполняющийся блок веб-приложением или winform/console?

Я хотел бы записать функцию помощника, которые создают сообщение об исключении для записи в журнал. Код похож:

если (IsWebApp)
{

    используйте HttpContext для получения Пути Запроса и RawUrl}
еще
{
    //еще это winform/console
    Используйте блок для получения выполняющегося пути.

}

7
задан archaictree 16 April 2010 в 15:03
поделиться

4 ответа

Используйте класс HttpRuntime :

if (!String.IsNullOrEmpty(HttpRuntime.AppDomainAppVirtualPath))
    //ASP.Net
else 
    //Non-ASP.Net
12
ответ дан 6 December 2019 в 19:34
поделиться

Просто проверьте, есть ли какой-нибудь объект, который существует только в веб-приложении. , например HttpRuntime.AppVirtualPath , предложенный SLaks.

Если это веб-приложение, вы все равно захотите проверить, является ли HttpContext.Current пустым. Если исключение возникает в коде, который не запускается из-за запроса, у него нет контекста. Например, событие Session_OnEnd запускается, когда сеанс сервера удаляется, поэтому у него нет контекста.

1
ответ дан 6 December 2019 в 19:34
поделиться

Вы можете проверить, является ли HttpContext.Current! = Null.

0
ответ дан 6 December 2019 в 19:34
поделиться

Как насчет

If (Not System.Web.HttpContext.Current Is Nothing) Then

End If

или

if(System.Web.HttpContext.Current != null){

}
0
ответ дан 6 December 2019 в 19:34
поделиться
Другие вопросы по тегам:

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