2012-05-17 19 views
0

,我已經能夠測試應用程序是否正在建有aspnet_compiler的唯一方法是使用下面的:如何使用aspnet_compiler編譯應用程序?

HttpRuntime.AppDomainAppId.EndsWith("_precompile") 

但是,這感覺就像一個黑客攻擊。我可以使用檢查元數據庫路徑,但可以通過切換到可執行文件輕鬆進行更改。是否有更強大的文件記錄方式來確定這一點?

回答

0

這是我想出來的(儘管它仍然很髒)。如果提供了更好的答案,我將其更改爲接受的答案。

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; 
} 
相關問題