2012-04-11 17 views
6

में उदाहरण के नाम जाओ मैं ColdFusion 10 में ColdFusion उदाहरण (उदाहरण के लिए "cfusion") का नाम कैसे मिल सकता है?ColdFusion 10

पूर्व 10 आप jrun जावा वस्तु का उपयोग करके ऐसा कर सकता है:

<cfobject action="create" type="java" class="jrunx.kernel.JRun" name="jr"> 

#jr.getServerName()# 

लेकिन Jrun के बाद से बिलाव ने ले लिया है मैं उदाहरण के नाम होने का एक नया तरीका खोजने की जरूरत है।

मुझे पता है कि यह व्यवस्थापक एपीआई का उपयोग करके किया जा सकता है लेकिन यह सुरक्षा मुद्दों के कारण मेरे लिए काम नहीं करता है।

+0

आपको इसके लिए क्या चाहिए? –

+1

यह निर्धारित करना कि कौन सा उदाहरण आपके अनुरोध की सेवा कर रहा है। हमारे पास लोड बैलेंसर के पीछे एक ही ऐप की सेवा करने वाले कई उदाहरण हैं। मैं जानना चाहता हूं कि कौन सी सीएफ इंस्टेंस मेरा अनुरोध संभाला है क्योंकि यह example01, instance02 या instance03 कर सकता है। –

+0

जनवरी, मुझे उत्सुकता है कि आप कहते हैं कि "सुरक्षा समस्याएं" हैं जो आपको इस समस्या को हल करने के लिए Admin API का उपयोग करती रहती हैं, क्योंकि मार्किन ने भी दिखाया था। यह CF10 के लिए तैयार समाधान है, क्योंकि आप कहते हैं कि आप JRun ऑब्जेक्ट पर भरोसा नहीं कर सकते हैं। यदि आप सोचते हैं कि सभी अमीन एपीआई विधियों को लॉग इन करने की आवश्यकता है (व्यवस्थापक एपीआई में admin.cfc की लॉगिन विधि के साथ), लेकिन जैसा कि मार्किन के उदाहरण में देखा जा सकता है, यह उन तरीकों में से एक नहीं है। यह किसी के लिए काम करना चाहिए। मैं वास्तव में उत्सुकता से उत्सुक हूं कि यह आपके लिए "काम नहीं करेगा"। –

उत्तर

5

देखो। Server.coldfusion.rootdir पर एक मान है। सीएफ 10 पर यह उदाहरण की निर्देशिका है। तो उदाहरण के लिए मेरे मैक पर "cfusion" उदाहरण के लिए, यह मान/अनुप्रयोग/ColdFusion10/cfusion है। आप पथ में अंतिम निर्देशिका नाम प्राप्त कर सकते हैं और यह उदाहरण का नाम है। बिल्कुल सुरुचिपूर्ण नहीं है, लेकिन आपको जो चाहिए वह आपको मिल सकता है।

+0

मुझे लगता है कि यह काम करेगा, मुझे इसे आज़माएं। –

+0

यह काम करता प्रतीत होता है। यह बहु-सर्वर सेटअप में अंतिम डीआईआर नहीं है लेकिन यह वहां है: 'सी: \ सीएफ \ सर्वर \ instance01 \ cfusion-ear \ cfusion-war \ WEB-INF \ cfusion' –

+0

दिलचस्प। एक मैक बनाम पीसी चीज हो सकता है –

-5

यह काम करना चाहिए: सर्वर दायरे में

<cfset inetAddressObj = createObject("java", "java.net.InetAddress") /> 
<cfset machineName = inetAddressObj.localhost.getCanonicalHostName() /> 
+0

अलास, जो मशीन का नाम देता है, लेकिन मेरे पास _same_ मशीन पर कई उदाहरण चल रहे हैं। मुझे सीएफ उदाहरण का नाम चाहिए। लेकिन जवाब देने के लिए धन्यवाद! –

+2

यह "उदाहरण" नाम नहीं है - और वह कोड किसी भी संस्करण में काम करता है ताकि वह मशीन के "दोस्ताना" नाम प्राप्त कर सके। –

5

CF10 में Admin API में "रनटाइम" घटक है। आप कोड के इस स्निपेट के साथ उदाहरण के नाम प्राप्त कर सकते हैं:

var runtime = createObject("component", "CFIDE.adminapi.runtime"); 
instance = runtime.getInstanceName(); 

यह jrunx.kernel.JRun घटक में करने के लिए इस्तेमाल getServerName() के रूप में समान मान चाहिए।

+0

+1 अंतिम निर्देशिका को पकड़ने से बेहतर है- rootdir imho का नाम – Seybsen

संबंधित मुद्दे