0
,我已經能夠測試應用程序是否正在建有aspnet_compiler
的唯一方法是使用下面的:如何使用aspnet_compiler編譯應用程序?
HttpRuntime.AppDomainAppId.EndsWith("_precompile")
但是,這感覺就像一個黑客攻擊。我可以使用檢查元數據庫路徑,但可以通過切換到可執行文件輕鬆進行更改。是否有更強大的文件記錄方式來確定這一點?
,我已經能夠測試應用程序是否正在建有aspnet_compiler
的唯一方法是使用下面的:如何使用aspnet_compiler編譯應用程序?
HttpRuntime.AppDomainAppId.EndsWith("_precompile")
但是,這感覺就像一個黑客攻擊。我可以使用檢查元數據庫路徑,但可以通過切換到可執行文件輕鬆進行更改。是否有更強大的文件記錄方式來確定這一點?
這是我想出來的(儘管它仍然很髒)。如果提供了更好的答案,我將其更改爲接受的答案。
public static bool IsPerformingPrecompilation()
{
var simpleApplicationHost = Assembly.GetAssembly(typeof(HostingEnvironment))
.GetType("System.Web.Hosting.SimpleApplicationHost", throwOnError: true, ignoreCase: true);
return HostingEnvironment.InClientBuildManager &&
HostingEnvironment.ApplicationID.EndsWith("_precompile", StringComparison.InvariantCultureIgnoreCase) &&
HostingEnvironment.ApplicationHost.GetType() == simpleApplicationHost;
}