मैं वर्तमान में हमारे उत्पाद सीआरएम एसडीके को अपग्रेड करने की प्रक्रिया के माध्यम से जा रहा हूं और मुख्य परिवर्तन जो मैंने सामना किया है वह यह है कि एक्सआरएम सेवा से कनेक्ट करने और कोशिश करने के द्वारा मेरी IOrganizationService बनाने की बजाय और के विश्वसनीय विधि:Microsoft.Xrm.Tooling.Connector हाई मेमोरी आवंटन
var connection = CrmConnection.Parse(connectionString);
var service = new OrganizationService(connection);
मैं अब टूलींग नाम स्थान से CrmServiceClient उपयोग करने के लिए कर रहा हूँ:
CrmServiceClient conn = new Microsoft.Xrm.Tooling.Connector.CrmServiceClient(connectionString).OrganizationServiceProxy;
अब यह सब एक प्रमुख मुद्दा ... स्मृति से छोड़कर ठीक है।
पुराने Xrm.Client विधि का उपयोग करके आप सेवा कॉन्फ़िगरेशन इंस्टेंस मोड निर्दिष्ट करते हैं (जो ServiceConfigurationInstanceMode.PerName के लिए डिफ़ॉल्ट है)। इसका मतलब यह था कि यदि सेवा को कई बार बनाने के लिए कहा जाता है तो सेवा का पुन: उपयोग किया जाता था। यह स्मृति पदचिह्न कम रखा। नीचे दी गई छवि एक सेवा उदाहरण 100 बार
हालांकि बनाने के लिए बुला के बाद आवंटित स्मृति की मात्रा दिखाने के लिए, नए विधि आप इस उदाहरण मोड कहीं भी सेट नहीं कर सकता का उपयोग करने और ऐसा लगता है कि एक नया कनेक्शन बनाई गई है हर बार चाहे आप इसे चाहते हों या नहीं। यहां एक ही परीक्षण के परिणाम दिए गए हैं:
जैसा कि आप देख सकते हैं, हर नए कनेक्शन के साथ, अधिक से अधिक स्मृति आवंटित की जाती है। मैं कहीं भी नहीं देख सकता हूं कि मैं इसे सेवा का पुन: उपयोग करने के लिए कह सकता हूं।
तो मैं मूल रूप से पूछ रहा हूं कि क्या मैं गलत तरीके से इस बारे में जा रहा हूं? क्या मुझे खुद सब कुछ बनाना और कैशिंग करना चाहिए? क्या छुपे हुए वर्ग/विधियां हैं जिन्हें मैं याद कर रहा हूं? किसी भी तरह की सहायता का स्वागत किया जाएगा।
फुल कोड/सेटिंग क्या है और एक्सआरएम एसडीके का नया संस्करण क्या है? क्या आप कनेक्शन को कैश करते हैं – lordkain
एकमात्र प्रासंगिक कोड जो मैंने ऊपर दिखाया है। आपको और क्या चाहिए? मैं कुछ भी कैशिंग नहीं कर रहा हूं क्योंकि मुझे कनेक्ट करने के xrm.client तरीके से ऐसा करने की आवश्यकता नहीं है। नया एसडीके माइक्रोसॉफ्ट का वर्जन 8.2.0 है। सीआरएमएसडीके। कोरएस्सेम्ब्लीज़ (नामस्थान ऊपर दिखाया गया है) – doodlleus
आप 2016 से कुछ भी गलत नहीं कर रहे हैं, जो कनेक्शन स्थापित करने का नया तरीका है जैसे मैं [FakeXrmEasy] में कर रहा था (https://github.com/jordimontana82/fake-xrm-easy/blob/master/FakeXrmEasy.Shared/XrmRealContext.cs#L67-L77), तो यह टूलिंग असेंबली में मेमोरी लीक की तरह दिखता है। क्या होगा यदि आप कनेक्शन को कैश करते हैं? कोई बड़ा लाभ? – Jordi