2010-04-16 12 views

回答

11

使用HttpRuntime類:

if (!String.IsNullOrEmpty(HttpRuntime.AppDomainAppVirtualPath)) 
    //ASP.Net 
else 
    //Non-ASP.Net 
+0

+1指出到我們的休息,在asp.net並非一切都是一個請求線程 - 每天學習新的東西:) – Ray 2010-04-16 15:14:47

0

您可以檢查,看看是否HttpContext.Current!= NULL。

+2

錯誤。這將在ASP.Net AppDomain中的非請求線程中爲空。 – SLaks 2010-04-16 15:09:42

0

如何

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

End If 

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

} 
+1

錯了。這將在ASP.Net AppDomain中的非請求線程中爲空。此外,VB.Net有一個'IsNot'關鍵字。最後,他使用C#。 – SLaks 2010-04-16 15:10:37

+0

在如此短的時間內從來沒有如此錯誤!感謝您設置我們的直線。 自VB5以來,我一直在VB編程,所以有時舊習慣會變得很難。 這就是爲什麼我包括兩個。 – Jeremy 2010-04-16 15:16:23

1

只是檢查一些對象只存在於Web應用程序,像HttpRuntime.AppVirtualPath那SLaks建議。

如果它是一個web應用程序,您仍然要檢查HttpContext.Current是否爲空。如果異常發生在沒有運行的代碼中,因爲它沒有任何上下文。例如,Session_OnEnd事件在服務器會話被刪除時運行,所以它沒有上下文。

相關問題