2011-12-21 21 views
7
  • द्वारा परिभाषित किया गया है हमारे पास हमारे ऑन-प्रिमाइज़ सीआरएम 2011 सिस्टम में 2 orgs चल रहे हैं।
  • हमने दोनों संगठनों के लिए प्रारंभिक बाध्य कक्षाएं उत्पन्न की हैं।
  • हमारे प्लगइन में से एक खाता को निष्क्रिय करते समय "खाता खाते के साथ प्रॉक्सी प्रकार को अन्य असेंबली द्वारा परिभाषित किया गया है" त्रुटि फेंक रहा है।
  • वह प्लगइन केवल प्रारंभिक बाध्य डीएल के संदर्भ में संदर्भित करता है।

मैं इन संदर्भों के नामस्थान का सम्मान करने के लिए सीआरएम सिस्टम कैसे प्राप्त करूं।
मैंने Google से दिखाई देने वाली कुछ वस्तुओं को आजमाया है और कोई भी काम नहीं कर रहा है।नाम खाते के साथ प्रॉक्सी प्रकार को अन्य असेंबली

चूंकि आप इसे 2 वेनिला ऑर्ग्स के साथ पुन: पेश कर सकते हैं, मैं इमेजिंग करता हूं, कोड कोड के बाहर कुछ ऐसा है जो हम वापस जाकर बिना 2 orgs के कोड के एक समूह को दोबारा कर सकते हैं।

धन्यवाद,
जॉन

+0

सैंडबॉक्स में पंजीकृत प्लगइन है? क्या आप सुनिश्चित हैं कि नामित फ़ाइलों दोनों के लिए नामस्थान अलग है?टिप्पणी के लिए – ccellar

उत्तर

0

यह सामान्य रूप से एक ही विधि का नाम या इस प्रणाली का उपयोग करने में विधानसभा की पूरी तरह से योग्य नाम .. का उपयोग उदाहरण के लिए ठीक करने के लिए संपत्ति के साथ एक या अधिक विधानसभाओं है कि वहाँ का मतलब है। उदाहरण के लिए आईओ उदाहरण के लिए यदि आपके पास क्लास कोड में एक ही तरीका है जो System.IO के साथ संघर्ष करता है .... आप अपना फिक्स इस ऑब्जेक्ट.सिस्टम.आई.पी.पीथ (----) = उदाहरण के लिए कुछ लिखेंगे .. इसका कोई मतलब भी है क्या..?

+0

thx। मेरा मानना ​​है कि यह सीआरएम 2011 के लिए एक मुद्दा है जो कुछ प्रकार के प्रतिबिंब लोडिंग और कैशिंग को एक अस्पष्ट संदर्भ के बजाय कर रहा है। – user1231231412

+0

क्या सीआरएम किसी विशेष असेंबली को लोड करने के प्रभाव में कुछ उपयोग करता है .. मेरी गलतफहमी के लिए खेद है। – MethodMan

+0

कोई चिंता नहीं, मुझे नहीं लगता कि कोई वास्तव में समझता है कि सीआरएम क्या कर रहा है: डी। हां, मैंने जो सीआरएम पढ़ा है, उससे सभी ऑर्गों में कुछ प्रकार का कैशिंग होता है। जो एक स्पष्ट मुद्दा पैदा करेगा क्योंकि उनके सभी में समान अंतर्निहित प्रकार हैं। – user1231231412

7

समस्या वास्तव में डब्ल्यूसीएफ के साथ सर्वर प्रतिक्रिया को deserialize करने का प्रयास कर रहा है और सही प्रकार की पहचान करने में सक्षम नहीं है। इस समस्या को हल करने का सबसे अच्छा तरीका इस तरह की प्रॉक्सी बनाते समय असेंबली.GetExecutingAssembly() को ProxyTypesBehavior() में मौजूदा असेंबली में पास करना है।

using (serviceProxy = new OrganizationServiceProxy(config.OrganizationUri, 
       config.HomeRealmUri, 
       config.Credentials, 
       config.DeviceCredentials)) 
     { 
      // This statement is required to enable early-bound type support. 
      serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior(Assembly.GetExecutingAssembly())); 
     } 
+0

यदि आपको इसे OrgnizationService (Microsoft.Xrm.Client.Services.OrganizationService) उदाहरण (जैसे आप क्रिमकनेक्शन का उपयोग कर रहे हैं) के साथ ऐसा करने की आवश्यकता है, तो आपको संगठन सेवा के चारों ओर एक रैपर क्लास बनाने की आवश्यकता है ताकि आप एक्सेस कर सकें ToOrganizationServiceProxy विधि और डिफ़ॉल्ट व्यवहार को हटा दें, फिर ऊपर से नया जोड़ें। – GotDibbs

0

मैंने पाया कि विधानसभा को जोड़ना। GetExecutingAssembly() ने समस्या हल की।

0

जोड़ने Assembly.GetExecutingAssembly() मेरी समस्या का समाधान, आप भी using System.Reflection;

धन्यवाद

जोड़ने की जरूरत है
4

जब विभिन्न विधानसभाओं संदर्भित प्रॉक्सी-वर्गों युक्त इस समस्या में पड़ सकते हैं, यानी एक विधानसभा लपेटकर सर्वर एसडीके (माइक्रोसॉफ्ट.एक्सएमएम.डीडीके) और क्लाइंट एसडीके (माइक्रोसॉफ्ट.एक्सएमएम.डीके.क्लिएंट) को लपेटने वाली एक और असेंबली। ऐसे परिदृश्य में ऐसा लगता है कि संगठन सेवा सर्विस को बताएं कि कौन सी असेंबली प्रॉक्सी कक्षाओं को हल करने के लिए उपयोग की जानी चाहिए।

यह मदद करनी चाहिए:

var credentials = new ClientCredentials(); 
credentials.Windows.ClientCredential = new System.Net.NetworkCredential(userName, password, domain); 

var proxy = new OrganizationServiceProxy(new Uri(discoveryUrl), null, credentials, null); 
proxy.EnableProxyTypes(typeof(CrmServiceContext).Assembly); 

var context = CrmServiceContext(proxy); 

महत्वपूर्ण बात सही विधानसभा पारित करके EnableProxyTypes कॉल करने के लिए है। मैंने एक और solution using CrmConnection देखा लेकिन सीआरएमकनेक्शन केवल क्लाइंट एसडीके में उपलब्ध है, जिसका अर्थ है कि आप इस तरह से "सर्वर-संगठन सेवाप्रॉक्सी" को तुरंत चालू नहीं कर सकते हैं। EnableProxyTypes (असेंबली असेंबली) दोनों तरफ के लिए काम करता है।

उम्मीद है कि इससे मदद मिलती है।

सादर, एमएच