15

प्रोफाइल नहीं करता है मेरे पास एमवीसीमिनीप्रोफाइलर संदर्भित (Nuget के माध्यम से) का संस्करण 1.6 है और प्रोजेक्ट होमपेज पर http://code.google.com/p/mvc-mini-profiler/ पर वर्णित सब कुछ सेट अप किया है।ईएफ 4.1 पर एमवीसीमिनीप्रोफाइलर कोड-फर्स्ट प्रोजेक्ट एसक्यूएल

मैं Web.config में निम्नलिखित कोड है:

<system.data> 
    <DbProviderFactories> 
     <remove invariant="MvcMiniProfiler.Data.ProfiledDbProvider" /> 
     <add name="MvcMiniProfiler.Data.ProfiledDbProvider" invariant="MvcMiniProfiler.Data.ProfiledDbProvider" description="MvcMiniProfiler.Data.ProfiledDbProvider" type="MvcMiniProfiler.Data.ProfiledDbProviderFactory, MvcMiniProfiler, Version=1.6.0.0, Culture=neutral, PublicKeyToken=b44f9351044011a3" /> 
    </DbProviderFactories> 
</system.data> 

(संस्करण परियोजना होमपेज पर है = 1.5.0.0 - NuGet पैकेज के बाद से अद्यतन किया गया है)

मैं निम्नलिखित कोड है Global.asax (और कनेक्शन स्ट्रिंग भी Web.config में परिभाषित) में:

protected void Application_Start() 
    { 
     Log.Info("ReCoupon has started."); 

     AreaRegistration.RegisterAllAreas(); 

     RegisterGlobalFilters(GlobalFilters.Filters); 
     RegisterRoutes(RouteTable.Routes); 

     var factory = new SqlConnectionFactory(ConfigurationManager.ConnectionStrings["ReCouponContext"].ConnectionString); 
     var profiled = new MvcMiniProfiler.Data.ProfiledDbConnectionFactory(factory); 
     Database.DefaultConnectionFactory = profiled; 

     Database.SetInitializer(new ReCouponContextInitializer()); 
    } 

प्रोफाइलर, सिवाय इसके कि मैं इसे एसक्यूएल प्रोफ़ाइल नहीं मिल सकता है अच्छा काम करता है। मैं एसक्यूएल सर्वर 2008 एक्सप्रेस का उपयोग कर रहा हूँ। मैं Google Code प्रोजेक्ट होमपेज पर संबंधित मुद्दों का पालन कर रहा हूं और पूरी तरह से अटक गया हूं।

+0

अरे @Sam केसर, बदलने नीचे समाधान समाधान - मैं इसे काफी समझ में नहीं आता है। मैं आपको अपने बिटकबकेट रेपो तक पहुंच प्रदान कर सकता हूं ताकि आप इसे अभी भी कार्रवाई में देख सकें। – rkaregaran

+0

एक शॉट 1.9.1 दें। आखिरकार अपडेट करने के बाद मैं ईएफ के साथ एसक्यूएल प्रोफाइलिंग कर रहा हूं। – RyanW

उत्तर

7

यह मुझे भी लंबे समय तक फंस गया था। ऐसा प्रतीत होता है कि कनेक्शन स्ट्रिंग नामकरण सम्मेलन डेटाबेस पर प्राथमिकता लेता है। DefaultConnectionFactory।

क्या आप web.config में कनेक्शन स्ट्रिंग का नाम बदलने का प्रयास कर सकते हैं?

से

<connectionStrings> 
     <add name="ReCouponContext" connectionString="..." /> 
    </connectionStrings> 

<connectionStrings> 
     <add name="ReCoupon" connectionString="..." /> 
    </connectionStrings> 

के लिए और फिर

var factory = new SqlConnectionFactory(ConfigurationManager.ConnectionStrings["ReCouponContext"].ConnectionString); 

को

var factory = new SqlConnectionFactory(ConfigurationManager.ConnectionStrings["ReCoupon"].ConnectionString); 
+0

ओएमजी - यह एक आकर्षण की तरह काम किया। मुझे यकीन नहीं है कि मैं समझता हूं कि नामकरण सम्मेलन के साथ प्राथमिकता क्या है? – rkaregaran

+0

ईएफ कोड पहले स्वचालित रूप से कनेक्शन स्ट्रिंग्स की तलाश करेगा जिन्हें आपके संदर्भ वर्ग के समान नाम दिया गया है। यदि यह एक नहीं मिलता है, तो यह डेटाबेस.डिफॉल्ट कनेक्शन कनेक्शन को देखेंगे। मुझे सच में यकीन नहीं है कि हमें क्या करना है यदि हम एक से अधिक डेटाबेस प्रोफाइल करना चाहते हैं। –

+0

आह, हाँ, मैं मूर्ख हूं, समझ गया - मैं सोच रहा था कि मेरा संदर्भ अभी भी कैसे काम कर रहा था - क्योंकि अब हम डिफ़ॉल्ट डीबी कनेक्शन सेट कर रहे हैं। हाँ बहु-डीबी चीज़ पर भी यकीन नहीं है। – rkaregaran

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