Dot-Net
如何確定正在執行的程序集是 Web 應用程序還是 winform/控制台?
我想編寫一個輔助函式來建構異常消息以寫入日誌。程式碼如下:
if(IsWebApp)
{
使用 HttpContext 獲取請求路徑和 RawUrl }
else
{
//else it a winform/console
使用程序集獲取執行路徑。
}
使用HttpRuntime類:
if (!String.IsNullOrEmpty(HttpRuntime.AppDomainAppVirtualPath)) //ASP.Net else //Non-ASP.Net
只需檢查一些僅存在於 Web 應用程序中的對象,就像
HttpRuntime.AppVirtualPathSLaks 建議的那樣。如果它是一個 Web 應用程序,您仍然需要檢查是否
HttpContext.Current為空。如果異常發生在由於請求而未執行的程式碼中,則它沒有任何上下文。例如,Session_OnEnd 事件在伺服器會話被刪除時執行,因此它沒有上下文。