如何在不重置Coldfusion Server实例的情况下重置Coldfusion Application / application.cfc?如果我没记错的话,那里有一些技巧,例如在application.cfc中创建一个reinit函数或重命名文件。
答案 0 :(得分:12)
几个步骤:
首先,确保所有应用程序初始化逻辑都包含在CFC的OnApplicationStart方法中。如果它有嵌套调用,那很好 - 只要你可以通过一次调用轻松地重新初始化你的应用程序就可以让你的生活更轻松。
其次,这是我在application.cfc
的OnRequestStart方法中使用的代码<cfif structKeyExists(url,'resetappvars')>
<cfset OnApplicationStart() />
</cfif>
随意使用您想要的任何编码值代替 resetAppVars 。
答案 1 :(得分:6)
要重新启动应用程序,您可以 使用停止应用程序 ApplicationStop()以及下一个请求 到这个应用程序的任何页面 自动启动它。
ApplicationStop()是ColdFusion 9中的新功能。
答案 2 :(得分:3)
如果您使用CF8并使用“if reinit,然后调用onApplicationStart()”方法,请确保避免竞争条件。这是一个很好的解释:http://blog.bullamakanka.net/2009/12/coldfusion-shared-scopes-and-race.html