我必須在我的應用程序(cfm | cfc)中維護一個變量來設置應用程序當前運行的環境,環境是(開發|測試|生產)。如何在ColdFusion中設置一個服務器範圍的變量
我想在服務器本身設置一個環境變量,以便我可以在Application.cfm中讀取它的值。
這可能嗎?
我必須在我的應用程序(cfm | cfc)中維護一個變量來設置應用程序當前運行的環境,環境是(開發|測試|生產)。如何在ColdFusion中設置一個服務器範圍的變量
我想在服務器本身設置一個環境變量,以便我可以在Application.cfm中讀取它的值。
這可能嗎?
最簡單的方法是設置一個OS環境變量(在系統級別,或者ColdFusion運行的用戶),然後重新啓動服務。然後該變量在CGI範圍內可用:
<cfset EnvName = CGI.COLDFUSION_ENVIRONMENT>
<cfoutput>#EnvName#</cfoutput>
您也可以使用Java系統屬性。在你的ColdFusion管理員,進入「服務器設置/ Java和JVM」,並添加像這樣的「JVM參數」:
-Dcom.mycompany.environment=development
然後,您可以要求在ColdFusion的那個值:
<cfset System = CreateObject("java", "java.lang.System")>
<cfset EnvName = System.getProperty("com.mycompany.environment")>
<cfoutput>#EnvName#</cfoutput>
每次進行更改時都必須重新啓動CF服務,但該值似乎非常穩定,所以這應該不成問題。
使用apache可以。在Apache配置(httpd.conf文件),或者你的虛擬主機,如果你有包膜模塊加載,你可以這樣做:
SetEnv APP_ENVIRONMENT DEVELOPMENT
從ColdFusion的
然後:
#cgi['APP_ENVIRONMENT']#
如果轉儲CGI範圍值將不會顯示,但是,如果您輸出它,它將在那裏。
我的閱讀問題首先想到的是設置服務器變量:
但問題是,在哪裏設置?
在CF9中會有一個onServerStart()方法用於這類事情。
感謝您的提示。我不運行apache並且似乎無法找到iis中的設置來執行此類操作:/ – noobsaibot 2009-07-23 07:59:17
此文章(來自快速谷歌搜索)http://forums.iis.net/p/ 1146779/1858505.aspx表明它可能在iis7 – Ian 2009-07-23 09:33:51
+1中提示它在轉儲CGI範圍時未顯示! – Seybsen 2012-03-04 15:13:24