2010-05-09 18 views
7

मेरे पास एक कामकाजी सिल्वरलाइट 4 एप्लिकेशन है (वीएस -2010, एसएल 4, डब्ल्यूसीएफ आरआईए, कैसिनी, 64-बिट विंडोज 7 का उपयोग कर मेरे देव बॉक्स पर होस्ट किया गया)।विंडोज सेवा से डब्ल्यूसीएफ आरआईए सेवा का उपयोग कैसे करें?

आप एक सेवा बनाया है:

<% @ServiceHost Service="MyApp.Services.MyService 
Factory="System.ServiceModel.DomainServices.Hosting.DomainServiceHostFactory" %> 

जब मैं http://localhost:52878/ClientBin/MyApp-Services-MyService.svc ब्राउज़ मैं निम्न देखें: ClientBin निर्देशिका के अंदर मैं एक .svc फ़ाइल है कि मेरी सेवा का वर्णन करता है। इस सेवा को परीक्षण करने के लिए, आपको क्लाइंट बनाने और सेवा पर कॉल करने के लिए इसका उपयोग करने की आवश्यकता होगी। http://localhost:52878/ClientBin/MyApp-Services-MyService.svc?wsdl

मैं एक Windows सेवा अनुप्रयोग से कि सेवा का उपयोग करना चाहते हैं svcutil.exe: आप निम्न सिंटैक्स के साथ कमांड लाइन से svcutil.exe उपकरण का उपयोग कर सकते हैं। मेरी समझ यह है कि ऐसा करने के लिए मुझे SOAP एंड-पॉइंट सक्षम करने की आवश्यकता है। तो, मैं निम्नलिखित जोड़ें मेरी web.config फाइल करने के लिए:

<domainServices> 
    <endpoints> 
    <add name="soap" 
     type="System.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory, 
     System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, 
     Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
    </endpoints> 
</domainServices> 

सबसे पहले, Intellisense टैग की उपस्थिति के बारे में शिकायत करते हुए कहा,:

तत्व system.ServiceModel अमान्य चाइल्ड तत्व domainServices है ।

दूसरा, उपरोक्त सिल्वरलाइट एप्लिकेशन काम करना बंद कर देता है, संभवतः क्योंकि यह परिवर्तन अंतर्निहित वेब सेवाओं को तोड़ देता है।

तीसरा, ऐसा प्रतीत होता है कि System.ServiceModel.DomainServices.Hosting असेंबली में वास्तव में SoapXmlEndpointFactory प्रकार नहीं है; अगर मैं web.config के लिए ऊपर जोड़ने के बाद सेवा करने के लिए ब्राउज़ करने के लिए कोशिश मैं देख रहा हूँ:

लोड नहीं कर सका प्रकार 'System.ServiceModel.DomainServices.Hosting.SoapXmlEndpointFactory' विधानसभा से 'System.ServiceModel। DomainServices.Hosting, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35 '।

अगर मैं परावर्तक का उपयोग कर विधानसभा का निरीक्षण किया, मुझे लगता है कि यह DomainServiceEndpointFactory और PoxBinaryEndpointFactory प्रकार है, लेकिन कोई SoapXmlEndpointFactory शामिल हैं।

क्या कोई मुझे बता सकता है कि मुझे यह कैसे करना चाहिए? मुझे विश्वास नहीं है कि सिल्वरलाइट एप्लिकेशन के अलावा किसी अन्य चीज़ में डब्ल्यूसीएफ आरआईए सेवा का उपभोग करना मुश्किल हो सकता है!

+0

एसएल फोरम (http://forums.silverlight.net/forums/p/180880/409333.aspx) से कुछ सुझावों में सिस्टम को स्थानीय पर कॉपी करने की सेटिंग शामिल है। ServiceModel.DomainServices .Hosting असेंबली (समस्या के रूप में काम नहीं करता है कि निर्दिष्ट विधानसभा से निर्दिष्ट प्रकार गुम है) और यह सुनिश्चित करना कि .NET Framework 4.0 स्थापित है (यह है)। –

उत्तर

2

आप रिया सेवा टूलकिट स्थापित किया है तुम सिर्फ

svcutil.exe को क्रियान्वित करने की कोशिश की http://localhost:52878/ClientBin/MyApp-Services-MyService.svc?wsdl

वैकल्पिक रूप से है,? http://www.microsoft.com/downloads/details.aspx?FamilyID=7b43bab5-a8ff-40ed-9c84-11abb9cda559&displaylang=en

यह सोप लिए आवश्यक है और JSON Endpoints

+0

मैंने आरआईए सर्विसेज टूलकिट (http://www.microsoft.com/downloads/details.aspx?FamilyID=7b43bab5-a8ff-40ed-9c84-11abb9cda559&displaylang=en) से स्थापित किया है, सही नामस्थान का उपयोग करने के लिए डोमेन सर्विसेज घोषणा को बदल दिया है और असेंबली, और अब यह काम करता है। धन्यवाद! –

1

SoapXmlEndpointFactory वर्ग

Microsoft.ServiceModel.DomainServices.Hosting

विधानसभा, जो में शामिल है का हिस्सा है सिल्वरलाइट टूलकिट।

here

4
बजाय

...

System.ServiceModel.DomainServices.Hosting

विधानसभा का उपयोग करें ...

Microsoft.ServiceModel देखें। DomainServices.Hosting

डब्ल्यूसीएफ आरआईए सर्विसेज टूलकिट से

। इसमें SoapXmlEndpointFactory प्रकार है।

डिफ़ॉल्ट स्थान है ... configSections में %Program Files%\Microsoft SDKs\RIA Services\v1.0\Toolkit\Libraries\Server

+0

धन्यवाद! दो डीएलएल के बीच अंतर देखने में मुझे कुछ समय लगा। –

1
<sectionGroup name="system.serviceModel"> 
    <section name="domainServices" type="System.ServiceModel.DomainServices.Hosting.DomainServicesSection, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" allowDefinition="MachineToApplication" requirePermission="false" /> 
</sectionGroup> 

प्रचार इस। सेक्शन ग्रुप को सही ढंग से शामिल करना महत्वपूर्ण है

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