2009-07-06 18 views
20

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

जब मैं कुछ कंप्यूटरों (WinXP SP2) में परीक्षण कर रहा था, मुझे पता चला है कि स्टार्टअप में 15 सेकंड से अधिक समय लगेगा। वे सब हमारे डोमेन में थे।

मैंने एक समान कंप्यूटर पकड़ लिया है, केवल विंडोज़ स्थापित है, और एप्लिकेशन को स्टार्टअप के लिए 2 सेकंड लग गए हैं।

फिर मैंने कंप्यूटर को हमारे डोमेन में जोड़ा, और डोमेन उपयोगकर्ता के साथ इसका परीक्षण करने से पता चला कि स्टार्टअप में इसे 15 सेकंड भी लग गए। मैंने पिछले उपयोगकर्ता (स्थानीय उपयोगकर्ता) के साथ फिर से परीक्षण किया और यह अभी भी तेज़ है। मैंने एक और स्थानीय उपयोगकर्ता बनाया, लेकिन डोमेन उपयोगकर्ता भी 15 सेकंड लेता है। मैंने अन्य स्थानीय उपयोगकर्ताओं को जोड़ा है लेकिन वे भी धीमे थे।

संक्षेप में: एप्लिकेशन केवल एक उपयोगकर्ता में तेज़ (2 सेकेंड) शुरू होता है, जिसे मैंने परीक्षण किया था। अन्य सभी उपयोगकर्ता (डोमेन या स्थानीय) धीमे हैं (15 सेकंड)।

मैं Improving WPF applications startup time देख रहा हूं लेकिन मेरी समस्या को एक अलग दृष्टिकोण की आवश्यकता है। क्या कोई यह समझता है कि क्या हो रहा है?

+0

कैसे हैं आप अपनी टेस्ट मशीनों पर तैनाती कर रहे हैं, क्या आप ClickOnce का उपयोग कर रहे हैं? – Oskar

+0

मैं केवल एक फ़ोल्डर में .EXE और WPFToolkit.dll की प्रतिलिपि बना रहा हूं। मैंने पहले से ही जीएसी में डीएलएल स्थापित करने का प्रयास किया है, लेकिन परिणाम वही था –

+3

यह केवल डब्ल्यूपीएफ अनुप्रयोग नहीं है जो इससे प्रभावित हो सकते हैं। यह किसी भी .NET अनुप्रयोग लोडिंग कोड हस्ताक्षर/प्रमाणीकरण असेंबली (मजबूत नाम हस्ताक्षर से अलग) –

उत्तर

18

मुझे इस समस्या का एक और समाधान मिला documentation from Microsoft में।

भी समस्या का समाधान होगा app.config फ़ाइल के लिए निम्न विन्यास जोड़ना:

<configuration> 
    <runtime> 
     <generatePublisherEvidence enabled="false"/> 
    </runtime> 
</configuration> 

इस तरह, आप कंप्यूटर विन्यास को बदलने की जरूरत नहीं है। यह सिर्फ आवेदन की विन्यास है।

अद्यतन:
लगता है कि .NET 4.0 इस मुद्दे, के रूप में MSDN पर here दस्तावेज तय की।

+0

समाधान होने लगता है, हालांकि मेरे लिए यह दस्तावेज़ीकरण से स्पष्ट नहीं है कि क्या यह केवल रद्द करने की जांच को अक्षम करता है, या अन्य चेक भी अक्षम करता है। – OregonGhost

+0

हाँ, आप सही हैं। अभी के लिए मेरे पास ये दो विकल्प हैं। शायद बाद में मैं इसके बारे में कुछ और जानकारी जांचने की कोशिश करूंगा। –

+2

.NET 4.0 और बाद में इसके लिए अब http://msdn.microsoft.com/en-us/library/bb629393(v=vs.100).aspx –

0

क्या यह किसी फ़ाइल में फ़ाइल खोलता है या नेटवर्क में इंटरैक्ट करता है? क्योंकि यदि नहीं, तो मैं सुझाव दूंगा कि आप किसी डोमेन में लॉग इन हैं या नहीं, स्थानीय उपयोगकर्ता के रूप में चल रहे हैं शायद एक लाल हेरिंग है।

क्या आप डीबग या रिलीज मोड में निर्माण कर रहे हैं? अगर आप पहले से नहीं हैं क्योंकि डीबग में चल रहा है तो अतिरिक्त त्रुटि जांच का भार है ..

+0

एप्लिकेशन किसी भी तरह से नेटवर्क या डीबी के साथ बातचीत नहीं कर रहा है। यह बस इसमें कुछ नियंत्रण के साथ एक फॉर्म खुलता है। मैं इसमें निर्माण कर रहा हूं रिलीज मोड धन्यवाद। –

0

क्या आपने जांच की है कि क्या इस डोमेन को प्रभावित करने वाली कोई डोमेन नीतियां हैं?

+0

मैं वर्तमान में उस के लिए देख रहा हूँ, लेकिन अभी भी कोई भी नहीं मिला ... –

12

क्या सिस्टम किसी नेटवर्क से जुड़ा हुआ है, लेकिन इंटरनेट तक नहीं पहुंच सकता क्योंकि प्रॉक्सी कॉन्फ़िगर नहीं है? यदि ऐसा है, तो इंटरनेट सेटिंग्स (यानी इंटरनेट एक्सप्लोरर प्रॉपर्टीज), उन्नत पर जाएं, और सुरक्षा के लिए वृक्ष दृश्य में देखें और चेकबॉक्स को "निरस्त प्रमाणपत्रों की जांच करें" या कुछ (मैं जर्मन विंडोज का उपयोग कर रहा हूं, इसलिए मेरे पास नहीं है हाथों पर अंग्रेजी लेबल)। अनचेक करें और फिर से परीक्षण करें।

यदि यह समस्या ठीक हो गई है, तो आपके पास एक हस्ताक्षरित असेंबली है जो माइक्रोसॉफ्ट से नहीं है जिसके लिए .NET Framework निरसन की जांच करेगा, और 15 सेकंड के बाद समय समाप्त होगा। यदि आप इंटरनेट कनेक्शन को ठीक से जांच या कॉन्फ़िगर करते हैं, तो आपको प्रतीक्षा नहीं करनी पड़ेगी।

+2

यह एक अच्छा जवाब है! यह समस्या तय! जिन कंप्यूटरों को इस एप्लिकेशन को चलाना होगा, उनके पास इंटरनेट तक पहुंच नहीं होगी। आपका बहुत बहुत धन्यवाद! –

+0

+1: अच्छा स्थान ओरेगन! –

+0

महान सलाह। लेकिन क्या यह आईई कनेक्शन सेटिंग्स में, किसी अन्य जगह पर कॉन्फ़िगर किया जा सकता है? मेरा मतलब उदाहरण के लिए प्रति आवेदन है। –

0

मुझे अभी भी यह समस्या थी (.NET 4.5)। मैं मामला था कि समस्या यह थी कि कंप्यूटर इंटरनेट से कनेक्ट नहीं था, लेकिन कुछ अन्य डिवाइस (कैमरे इत्यादि) थे जो गीग के माध्यम से जुड़े थे। प्रत्येक .NET अनुप्रयोग की स्टार्टअप लगभग 20 सेकंड तक देरी हुई थी।

समाधान काफी आसान था: इंटरनेट से बस एक बार कंप्यूटर से कनेक्ट किया गया, किसी भी .NET एप्लिकेशन (पहली स्टार्टअप में लगभग 7 सेकंड लग गए) शुरू किया और उसके बाद, प्रत्येक स्टार्टअप काफी तेज था, भले ही कंप्यूटर अब कनेक्ट न हो इंटरनेट के लिए। इसके अलावा मुझे प्रोटोकॉल टीसीपी/आईपी वी 6 को अक्षम करना पड़ा (3-5 सेकंड देरी हुई)।

एक अन्य संभावित समाधान "इंटरनेट प्रोटोकॉल संस्करण 4 (टीसीपी/आईपीवी 4), तो उन्नत का चयन करें, का चयन करें टैब" जीत "और सेट" टीसीपी/आईपी पर अक्षम NetBIOS "के लिए गुण का चयन करने के लिए है।

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