2012-03-29 11 views
17

मैंने अपनी पहली डब्ल्यूसीएफ सेवा बनाई और इसे अपने कंप्यूटर पर परीक्षण किया, और यह काम करता है।मैं .svc फ़ाइल कैसे उत्पन्न करूं?

मौजूद फाइलें एक इंटरफ़ेस, उस इंटरफ़ेस का कार्यान्वयन, और एक app.config फ़ाइल हैं।

अब आईआईएस के साथ एक वास्तविक सर्वर पर होस्ट करने का समय है, मुझे बताया गया था कि आने वाली कॉल प्राप्त करते समय आईआईएस एक .svc फ़ाइल की तलाश में है।

यहाँ मैं क्या मिला है: IIS में होस्ट की

WCF सेवाओं विशेष सामग्री फ़ाइलें (.svc फ़ाइलें) आईआईएस अनुप्रयोग के भीतर के रूप में प्रतिनिधित्व कर रहे हैं। यह मॉडल एएसआईएक्स पृष्ठों को आईआईएस एप्लिकेशन के अंदर .asmx फ़ाइलों के रूप में प्रदर्शित करने के तरीके के समान है। ए। एसवीसी फ़ाइल में एक डब्ल्यूसीएफ-विशिष्ट प्रसंस्करण निर्देश (@ServiceHost) होता है जो आने वाले संदेशों के जवाब में डब्ल्यूसीएफ होस्टिंग इंफ्रास्ट्रक्चर को होस्टेड सेवाओं को सक्रिय करने की अनुमति देता है।

क्या कोई मुझे यह निर्देश दे सकता है कि मैं इस फ़ाइल को कैसे बना सकता हूं ताकि मैं इसे होस्ट कर सकूं?

धन्यवाद!

+2

http://msdn.microsoft.com/en-us/library/ms733766.aspx – Reniuz

+0

तो service.svc मूल रूप से एक और तरीका अंतिमबिंदुओं घोषित करने के लिए है? तब app.config का उपयोग क्या है? – TheGateKeeper

+1

@TheGateKeeper: यह लगभग एक अंतराल को परिभाषित कर रहा है, लेकिन वास्तव में नहीं। आपको याद रखना होगा कि आईआईएस सेटिंग अनुरोध-संचालित है इसलिए। एसवीसी प्रदान करना सिर्फ आईआईएस को बताता है कि वह स्थान है जहां आप सेवा चाहते हैं। यह अलग-अलग व्यवहार करेगा यदि यह एक टीसीपी सेवा या एक विंडोज सेवा-होस्ट समाधान था। याद रखें कि आप अपनी सेवा के साथ वेब पेज अनुरोध साझा कर रहे हैं। - बीटीडब्लू, रेनियुज द्वारा टिप्पणी के लिए अनुवर्ती: http://msdn.microsoft.com/en-us/library/aa751792.aspx –

उत्तर

18

आपको ध्यान में रखने की आवश्यकता यह है कि आईआईएस पहला और सबसे प्रमुख वेब सर्वर है, और डब्ल्यूसीएफ होस्ट दूसरे स्थान पर है।

वेबसर्वर का काम आने वाले अनुरोध के आधार पर डेटा प्रस्तुत करना है। इनमें से अधिकांश डेटा सामग्री है (अनुरोध पथ सीधे सर्वर पर फ़ाइल से संबंधित है) लेकिन डब्ल्यूसीएफ सेवा के मामले में आईआईएस को यह जानने की जरूरत है कि यहां से कहां जाना है (इस प्रकार एसवीसी फ़ाइल और आईआईएस को "निर्देश" स्पिन अपनी सेवा ऊपर)।

सभी एसवीसी फ़ाइल कर रही है कह रही है कि /x/y/z.svc पर मैं एक WCF सेवा है जो सिर्फ सर्वर साइड पृष्ठों और सामग्री फ़ाइलों की तुलना में अधिक एक बहुत करने में सक्षम है है। तो कृपया इसे स्पिन करें, इसे उपलब्ध कराएं और मेरे आने वाले कनेक्शन को संसाधित करने दें।

यदि यह डब्ल्यूसीएफ सेवा अपने स्वयं के समर्पित बंदरगाह पर होस्ट किया गया था, तो यह एक अलग कहानी होगी क्योंकि यह के अतिरिक्त /MyService/GetSomeObject/ के अतिरिक्त अतिरिक्त अनुरोधों का सामना नहीं कर रही है।

+0

धन्यवाद आदमी बहुत अच्छी तरह से समझाया। – TheGateKeeper

+0

हाय, क्या आप मेरी आखिरी बिट में मदद कर सकते हैं? Http://msdn.microsoft.com/en-us/library/ms733766.aspx पर, चरण 8 पर, यह आपको service.cs कक्षा में इंटरफ़ेस बनाने के लिए कहता है। मेरे पास एक .dll के हिस्से के रूप में मेरा इंटरफ़ेस है, क्या मुझे अभी भी यह हिस्सा करने की आवश्यकता है? – TheGateKeeper

+0

नामस्थान 'My.Custom.Assembly.IService' –

10

आईआईएस होस्ट किया गया .svc फ़ाइल @ServiceHost निर्देश और विशेषता, सेवा शामिल है।

<% @ServiceHost Service="MyNamespace.MyServiceImplementationTypeName" %> 

सेवा विशेषता के मान आपकी सेवा कार्यान्वयन के CLR प्रकार का नाम है। इस निर्देश का उपयोग मूल रूप से आपके स्वयं के होस्टिंग कंसोल प्रोग्राम में निम्न कोड का उपयोग करके एक सेवा होस्ट बनाने के बराबर है।

new ServiceHost(typeof(MyNamespace.MyServiceImplementationTypeName)); 

और यदि आपका स्वयं का आयोजन किया आवेदन, 'अंत बिंदु' की तरह WCF विन्यास का उपयोग कर रहे 'बंधन', आदि app.config में, आप भी रख सकते हैं कि web.config में। आईआईएस-होस्टेड सेवा आईआईएस के बाहर होस्ट की गई डब्ल्यूसीएफ सेवाओं के समान विन्यास तत्वों और वाक्यविन्यास का उपयोग करती है। (आईआईएस-होस्टेड सेवा में बेस/एंडपॉइंट एड्रेस को नियंत्रित नहीं कर सकते हैं।) और अपनी आईआईएस साइट की एप्लिकेशन की \ bin निर्देशिका में अपनी प्रीकंपील्ड। डीएल फाइल डालें।

और आईआईएस-होस्टेड सेवा का पता .svc फ़ाइल का पता होगा। (http://localhost/Application1/MyService.svc)

कृपया नीचे दी गई एमएसडीएन - Deploying an IIS-Hosted WCF Service देखें।

http://msdn.microsoft.com/en-us/library/aa751792.aspx

+0

का उपयोग करके संदर्भित करें धन्यवाद दोस्त, अच्छा। – TheGateKeeper

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