1. कैसिनी क्या है
कैसिनी एमएस विंडोज के लिए एक सरल और "हल्का" वेब सर्वर है, जैसा कि आप अनुमान लगा सकते हैं, स्थैतिक HTML पृष्ठों और ASP.NET अनुप्रयोगों के अनुरोधों को संसाधित करता है। लेखन के समय, कैसिनी को विजुअल स्टूडियो के हिस्से के रूप में वितरित किया जाता है और Microsoft विज़ुअल स्टूडियो के बाहर इसके उपयोग और वितरण को प्रोत्साहित नहीं करता है (लेकिन इसका निषेध नहीं करता है)। Microsoft Visual Studio के बाहर कैसिनी के लिए तकनीकी सहायता प्रदान नहीं करता है। हालाँकि, ऐसे मामले हैं जब Microsoft ने अपने उत्पादों के पैकेज में कैसिनी को शामिल किया, उदाहरण के लिए, Microsoft CRM के प्रारंभिक संस्करण (जिसे अब Microsoft Dynamics CRM के रूप में बाजार में जाना जाता है)। मार्च 2006 में, Microsoft ने काफी उदार लाइसेंस के तहत कैसिनी 2.1 के लिए स्रोत कोड खोला, जिसमें कहा गया है कि इस कोड का उपयोग "किसी भी वाणिज्यिक या गैर-वाणिज्यिक उद्देश्य के लिए किया जा सकता है, जिसमें व्युत्पन्न कार्य भी शामिल हैं।"
लेखन के समय, मैं कई वैकल्पिक कैसिनी वितरण खोजने में कामयाब रहा:
- UtilDev कैसिनी वेब सर्वर (http://utildev.com)
- कैसिनीडेव (http://cassinidev.codeplex.com)
इसके अलावा, आप विज़ुअल स्टूडियो के साथ वितरित कैसिनी संस्करण के सफल अपघटन (और 32-बिट और 64-बिट प्लेटफार्मों के लिए सफल विधानसभा) के बारे में नेटवर्क पर जानकारी पा सकते हैं।
यहाँ कैसिनी और IIS के बीच मुख्य अंतर हैं:
- प्रति पोर्ट केवल एक ASP.NET अनुप्रयोग होस्टिंग
- कोई HTTPS सहायता नहीं
- प्रमाणीकरण का समर्थन नहीं करता है
- उत्तर केवल स्थानीय मशीन से अनुरोध करता है
एक परियोजना पर काम करने की प्रक्रिया में, मैंने डेमो वेब अनुप्रयोगों में कैसिनी के उपयोग के विकल्प पर विचार किया। यह पत्र वेब और व्यक्तिगत अनुभव पर पाए जाने वाले कैसिनी के बारे में विविध जानकारी को संक्षेप में प्रस्तुत करने का प्रयास करता है।
2. कैसिनी क्यों? क्यों कैसिनी?
जिस परियोजना पर हम काम कर रहे थे, वह उपयोगकर्ता के सर्वर पर वेब एप्लिकेशन और वेब सेवाओं की स्थापना से जुड़ी थी। दुर्भाग्य से, सर्वर पर आईआईएस की उपस्थिति की गारंटी देना संभव नहीं था (उपयोगकर्ता बहुत अलग हैं), इसलिए मुझे अपनी आँखें कैसिनी की ओर मोड़नी पड़ीं। ऊपर सूचीबद्ध सीमाएं हमें परेशान नहीं करती हैं - यह केवल डेमो अनुप्रयोगों के बारे में था। हमारे उत्पाद के लिए इंस्टॉलेशन प्रोग्राम उपयोगकर्ता की मशीन पर कैसिनी और वेब एप्लिकेशन इंस्टॉल करना था ताकि इंस्टॉलेशन के तुरंत बाद उपयोगकर्ता
लोकलहोस्ट / SomeDemoApplication पर जाकर उत्पाद को कार्रवाई में
आज़मा सके ।
आगे देखते हुए, मैं कहूंगा कि सब कुछ काम कर गया। लेकिन सड़क पर मुझे कई रेक मिले, जिसके बारे में मैं बात करना चाहता हूं।
3. कासनी लॉन्च करें
मैंने विज़ुअल स्टूडियो 2010 से कैसिनी निष्पादन योग्य का उपयोग किया और .NET 4.0 के साथ बनाया गया:
- WebDev.WebHost40.dll - अतिरिक्त असेंबली, GAC में स्थापित होनी चाहिए (नीचे "समस्याएँ देखें")
- WebDev.WebServer40.exe - वेब सर्वर का वास्तविक निष्पादन योग्य मॉड्यूल, एक नियमित विंडोज एप्लिकेशन
- WebDev.WebServer40 विन्यास और प्रकट फाइलें
कासिनी चलाना आसान था:
WebDev.WebServer40.exe /port:8111 /path:"c:\Projects\My Web Application"
और यह काम करता है:
लोकलहोस्ट पता: 8111 / Home.aspx मुझे मेरे वेब एप्लिकेशन का होम पेज दिखाता है।
फिर मैंने वेब प्रोड डे के साथ हमारे उत्पाद स्थापना कार्यक्रम में कैसिनी के निष्पादनयोग्य को शामिल किया। जीएसी में स्थापित किया गया। एकमात्र समस्या जो हल की जानी है, वह डेमो एप्लीकेशन पेज पर जाने से पहले कैसिनी का लॉन्च है। एक स्क्रिप्ट का जन्म हुआ जो पोर्ट 8111 पर कैसिनी की गतिविधि को निर्धारित करने के लिए सरल पोर्ट क्यूरी उपयोगिता का उपयोग करता है:
portqry.exe -n localhost -e 8111
if ERRORLEVEL=1 goto nolisten
echo Cassini is already running
goto end
:nolisten
start WebDev.WebServer40.exe /port:8111 /path:"c:\Projects\My Web Application"
:end
start localhost:8111/Home.aspx
यह इंस्टॉलर में एक स्क्रिप्ट जोड़ने और स्टार्ट मेनू में इस स्क्रिप्ट के लिए एक शॉर्टकट बनाने के लिए बना हुआ है, और सेटअप तैयार है।
4. समस्याएं
हमेशा की तरह, कुछ सवाल थे।
WebDev.WebHost40.dll जीएसी में
दरअसल, इसमें कोई बड़ी समस्या नहीं है, लेकिन सवाल यह है कि सामान्य रूप से इस विधानसभा को जीएसी में क्यों होना चाहिए? मैंने कैसिनी के स्रोत को नहीं देखा, इसलिए मुझे इसका वास्तविक कारण पता नहीं है। यदि यह पूर्ण-विश्वास प्राप्त करने का सिर्फ एक सस्ता तरीका है, तो अगला सवाल यह होगा: एक पूर्ण-विश्वास वाले खिलौना वेब सर्वर से परेशान क्यों? सामान्य तौर पर, मैं अपने उत्पादों में कैसिनी का उपयोग करने में अधिक आत्मविश्वास महसूस करूंगा अगर कोई मुझे स्पष्ट रूप से समझाए कि GD में WebDev.WebHost40.dll क्यों है।
64-बिट समर्थन
लेखन के समय, विजुअल स्टूडियो और कैसिनी 32-बिट अनुप्रयोग हैं। यदि आप कैसिनी का उपयोग करके 64-बिट ASP.NET अनुप्रयोग होस्ट करने का प्रयास करते हैं, तो एक अपवाद फेंक दिया जाएगा। आपके पास दो विकल्प बचे हैं: या तो अपने ASP.NET एप्लिकेशन को 32 बिट्स में रीकैप करें, या वैकल्पिक कैसिनी वितरण का उपयोग करने का प्रयास करें जो 64 बिट्स का समर्थन करता है (ऊपर सूची देखें)।
आभासी पथ के साथ समस्या
Visual Studio की डिलीवरी से कैसिनी के पास एक सुविधाजनक विकल्प / vpath है, जो आपको अपने आवेदन के लिए एक आभासी फ़ोल्डर (वर्चुअल फ़ोल्डर) निर्दिष्ट करने की अनुमति देता है। लेकिन जब मैंने कैसिनी की शुरुआत में इस विकल्प का उपयोग करने की कोशिश की और अपना आवेदन
लोकलहोस्ट से चलाया: 8111 / MyAppVirtualFolder / Home.aspx मुझे एक त्रुटि मिली: WebConfigurationManager.OpenWebConCiguration () फेंकने के लिए "पथ को मैप करने में विफल" / '' अपवाद। एकमात्र समाधान मैंने पाया कि कसीनी को उन्नत विशेषाधिकारों में / vpath विकल्प के साथ शुरू करना था, फिर आभासी पथ ने काम किया। यह विकल्प परीक्षण के लिए उपयुक्त है, लेकिन वाणिज्यिक उत्पाद के लिए शायद ही उपयुक्त है। जीएसी के साथ के रूप में, इस तरह के अजीब व्यवहार के लिए स्पष्टीकरण प्राप्त करना दिलचस्प होगा।
5. सिफारिशें
ऐसे समय होते हैं जब कैसिनी बेहद उपयोगी हो सकती है, लेकिन आपको सावधानी के साथ इसका उपयोग करना चाहिए। संभव के रूप में कई कॉन्फ़िगरेशन में अंतिम समाधान का परीक्षण करें और एक दूसरे के लिए मत भूलना कि कैसिनी एक पूर्ण व्यावसायिक उत्पाद नहीं है। सौभाग्य है