Dot-Net

確定是否在沒有 System.Web 的情況下在 ASP.NET 或 WinForms/console 中執行

  • March 28, 2011

從類庫中,我需要在執行時確定我是在 ASP.NET 應用程序中執行,還是在 WinForms/console 應用程序中執行。關於這個主題還有其他幾個 問題,但所有這些解決方案都需要添加對 System.Web 的引用如果可能的話,在執行我的控制台和 WinForms 應用程序時,我不想將 System.Web 程序集載入到記憶體中,只是為了數千行程式碼中的一行。

採用System.Diagnostics.Process.GetCurrentProcess().ProcessName

如果您正在執行 ASP.NET,則程序集將這樣命名:

  • 如果您執行的是 IIS 6.0 或 IIS 7.0,則名稱為 w3wp.exe。
  • 如果您執行的是早期版本的 IIS,則名稱為 aspnet_wp.exe。

另一個想法:如何使用 AppDomain.CurrentDomain.GetAssemblies() API 測試程序/應用程序域是否存在 System.Web.dll?

引用自:https://stackoverflow.com/questions/5464979