2009-08-21 14 views
6

से डब्ल्यूसीएफ को कॉल करते समय यह मेरी स्वच्छता चोरी करने जा रहा है। मैं वेब पर मिली लगभग हर चीज से गुजर चुका हूं और कोई भी कदम आगे नहीं चला गया। निराशा इतनी मजबूत नहीं है कि इस त्रुटि का वर्णन करने के लिए मैं जो भी कर रहा हूं, उसके बावजूद पॉप-अप आ रहा हूं।संचार अपवाद जब सिल्वरलाइट

लेकिन एक के बाद एक।

मैं वी.एस. 2008 SP1 के जर्मन संस्करण के साथ एक 64 बिट W2008 सर्वर मशीन, सिल्वरलाइट उपकरण 3.0

मैं एक Silverlight अनुप्रयोग से एक WCF सेवा का उपभोग करना चाहते हैं। और, कई लोगों के रूप में, मुझे आक्रमण के अंत में यह बहुत ही निराशाजनक गैर-वर्णना संचार अपवाद मिलता है।

मैंने एक नई डब्ल्यूसीएफ-सेवा बनाई, जिसे एंडपॉइंट नाम दिया गया और मूलभूत Bttp बाइंडिंग के लिए बाध्यकारी सेट किया गया। मैं विशेषता

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 

Service1 वर्ग के लिए और लाइन

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 

system.serviceModel को App.config

में मैं और यह है के रूप में सब कुछ छोड़ दिया जोड़ा गया है और सेवा का परीक्षण किया सफलतापूर्वक डब्ल्यूसीएफ-क्लाइंट के माध्यम से।

using OSMDeepEarthExample.ServiceReference1; 

... 
Service1Client s1 = new Service1Client(); 
s1.GetDataCompleted += new System.EventHandler<GetDataCompletedEventArgs>(s1_GetDataCompleted); 
s1.GetDataAsync(20); 

void s1_GetDataCompleted(object sender, GetDataCompletedEventArgs e) 
{ 
    CountFetchedData.Text = e.Result; 
} 

मैं कहा: तो फिर मैं इसे अपने स्थानीय IIS7 पर प्रकाशित http://localhost/WCFTest

करने के लिए अपने Silverlight आवेदन के भीतर, मैं http://europa.therestofmydomain/WCFTest/WcfTest.Service1.svc

का उपयोग कर Servicereference को सेवा जोड़ा मैं ग्राहक के लिए निम्न कोड जोड़ा एक clientaccesspolicy.xml और webroot को एक crossdomain.xml (सी: \ inetpub \ wwwroot)

clientaccesspolicy.xml:

<?xml version="1.0" encoding="utf-8"?> 
<access-policy> 
    <cross-domain-access> 
    <policy> 
     <allow-from> 
     <domain uri="*"/> 
     </allow-from> 
     <grant-to> 
     <resource path="/" include-subpaths="true"/> 
     </grant-to> 
    </policy> 
    </cross-domain-access> 
</access-policy> 

crossdomain.xml:

<?xml version="1.0"?> 
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> 
<cross-domain-policy> 
    <allow-access-from domain="*" /> 
    <allow-http-request-headers-from domain="*" headers="SOAPAction" /> 
</cross-domain-policy> 

मैं आईआईएस को पुनः आरंभ। दो बार। अक्सर।

मैंने वेब विकास हेल्पर स्थापित किया है ताकि गलत क्या हो, इसके बारे में अधिक सार्थक जानकारी प्राप्त हो सके। लेकिन यह आईई दुर्घटना बनाता है।

मैं विचारों से बाहर हूं। और जल्द ही मेरे हार्डवेयर के खिलाफ आक्रामक होना शुरू हो गया। कृपया मेरे हार्डवेयर की मदद करें!

के रूप में जॉन का उल्लेख किया, मैं यहाँ पूर्ण ERRORMESSAGE भूल गया था कि यह आता है:

Fehler beim Senden einer Anforderung एक मांद URI "http://europa.therestofmydomain/WCFTest/WcfTest.Service1.svc"। Ursache ist möglicherweise, dass ohne die entsprechende domänenübergreifende Richtlinie oder mit einer nicht für SOAP-Dienste geeigneten Richtlinie domänenübergreifend auf einen dienst zugegriffen wurde। Möglicherweise müssen Sie sich एक डेन Besitzer des Diensts wenden, Damit eine domänenübergreifende Richtliniendatei veröffentlicht und das Senden von sich auf SOAP beziehenden HTTP-headern zugelassen wird। Dieser Fehler कन्न auch durch Verwendung von internen Typen im webdienstproxy ohne das InternalsVisibleToAttribute-Attribut verursacht werden। Weitere विवरण खोज में Sie in der inneren Ausnahme।

संक्षेप में, यह कहता है कि एक इंटरडोमेन नियम गुम हो सकता है।

+0

उस निराशा से, आपने एक बार अपवाद पोस्ट नहीं किया था। पूरा अपवाद। Ex.ToString() का परिणाम। –

+0

आप सही हैं, मैंने अपनी पोस्ट – Aaginor

उत्तर

7

Whew, मैंने इसे किया है!

मैंने webroot से clientaccesspolicy.xml को हटा दिया, केवल crossdomain.xml को छोड़ दिया। क्या एक ओडिसी! सुनने के लिए धन्यवाद, इससे मेरे दिमाग को दूर करने में मदद मिली। मुझे आशा है कि इसी तरह की समस्या वाले किसी व्यक्ति को पाठ थोड़ा सा उपयोगी लगेगा!

+0

के अंत में त्रुटि को जोड़ा है यह भी vs2010, sl4, w7 के साथ काम करता है। घंटों के बाद मुझे आपका समाधान मिला। dankeschöööööön – devio

+0

मैन ... धन्यवाद। यह भी मेरे लिए काम किया। क्या किसी के पास इस (IMHO, अजीब) व्यवहार के लिए उचित स्पष्टीकरण है? –

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