2010-04-19 12 views
10

में टाइप लोड नहीं किया जा सका मैं सी # में एक छोटा कंसोल एप्लिकेशन लिख रहा हूं जो एक कस्टम असेंबली का संदर्भ देता है जो कस्टम .net प्रोफाइल प्रदाता लागू करता है। मैंने अपने app.config फ़ाइल में निम्न अनुभाग जोड़े हैं जो कस्टम क्लास और असेंबली का संदर्भ देता है।कस्टम प्रोफाइल प्रदाता

<system.web> 
<profile defaultProvider="MyCompanyProfileProvider" inherits="MyCompany.Web.User.GenericProfile" automaticSaveEnabled="false"> 
    <providers> 
     <clear/> 
     <add name="MyCompanyProfileProvider" connectionStringName="defaultDatabase" applicationName="/myApplication" type="MyCompany.Web.ProfileProvider, MyCompany.Web"/> 
    </providers> 
    <properties> 
     <add name="JobRoleId" type="System.Int32"/> 
     <add name="LastCompetencyId" type="System.Int32" defaultValue="0"/> 
     <add name="MixSettings" type="System.Xml.XmlDocument"/> 
    </properties> 
</profile></system.web> 

हालांकि जब मैं डिबग मोड में अनुप्रयोग चलाने मैं जैसे कि वह System.Web विधानसभा के बजाय एक app.config फ़ाइल में निर्दिष्ट में लग रही है निम्नलिखित त्रुटि मिलती है।

', System.Web संस्करण = 2.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b03f5f7f11d50a3a' विधानसभा से प्रकार 'MyCompany.Web.User.GenericProfile' लोड नहीं कर सका।

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

कोई विचार ??

उत्तर

19

मुझे अंत में इसका जवाब मिला और यह इतना आसान था !! (वह खोज और डिबगिंग के घंटों के बाद कहता है)।

मुझे बस स्पष्ट रूप से कहना था कि मेरे कस्टम प्रदाता किस विधानसभा में रहते थे। मैंने सोचा कि प्रदाता को जोड़ने के दौरान टाइप को निर्दिष्ट करते समय मुझे केवल यह करना था।

हालांकि आपको विरासत विशेषता में अपनी प्रोफ़ाइल को परिभाषित करते समय परिभाषित करने की आवश्यकता है। इसलिए जैसा:

से पहले:

<profile defaultProvider="MyCompanyProfileProvider" 
     inherits="MyCompany.Web.User.GenericProfile" 
     automaticSaveEnabled="false"> 

के बाद:

<profile defaultProvider="MyCompanyProfileProvider" 
     inherits="MyCompany.Web.User.GenericProfile, MyCompany.Web" 
     automaticSaveEnabled="false"> 

आशा इस एक ही समस्या के साथ भविष्य में किसी और को मदद मिलती है।

+0

यहां भी समझाया गया: http://forums.asp.net/post/3709675.aspx –

+1

+1 - इससे मुझे अपने एनयूनीट परीक्षणों को काम करने में मदद मिली। मेरा एमवीसी 4 एप्लीकेशन चलाते समय सबकुछ ठीक काम कर रहा था, लेकिन यूनिट परीक्षण विफल रहे। सुनिश्चित करें कि यह परिवर्तन ऐप में शामिल है।कॉन्फ़िगरेशन फ़ाइल किसी भी यूनिट परीक्षण मॉड्यूल द्वारा संदर्भित। – Winger

0

अल्पविराम के पीछे अतिरिक्त स्थान को हटाने का प्रयास करें जहां आप अपनी कक्षा और असेंबली निर्दिष्ट करते हैं, लेकिन मुझे नहीं लगता कि यह ठीक करेगा।

आपका ऐप System.Web असेंबली में आपकी कस्टम क्लास देख रहा है, जो बहुत अजीब है।

विफलता पर अधिक जानकारी प्राप्त करने के लिए मैं fuslogvw का उपयोग करूंगा।

+0

दोनों सुझावों का प्रयास किया और अभी भी आगे नहीं। Fuslogvw मुझे नीचे समस्या को ट्रैक करने के लिए कोई सभ्य जानकारी नहीं दी। – Cragly

0

इस समाधान का पीछा करते हुए मेरे बहुमूल्य समय के बाद मेरे समाधान ने मेरी माफी ए * से बचाई। हमेशा की तरह, मेरे पास वास्तविक आईटी समस्याओं के बजाय माइक्रोसॉफ्ट के उत्पादों से लड़ने के लिए पिछले दिन हैं जिन्हें मुझे स्वयं हल करने की आवश्यकता है। मेरे app.config लाइनों अब इस प्रकार देखते हैं और यह ठीक काम करने के लिए लगता है:

<profile defaultProvider="DefaultProfileProvider" inherits="SmartTariffs_V13.ProfileCommon, SmartTariffs_V13"> 
    <providers> 
    <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" /> 
    </providers> 
</profile> 

कहाँ SmartTariffs_V13 परियोजना का नाम है और SmartTariffs_V13.ProfileCommon उस प्रोजेक्ट के अंतर्गत .cs फ़ाइल का नाम है। मैंने यह पाया है कि यह आपके "स्वचालितसेवएनेबल" टैग को जोड़ने के बिना काम करता है, लेकिन हे हो ...

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