फ़ंक्शन आयात का उपयोग करते समय मुझे एंटिटी फ्रेमवर्क (EF) का उपयोग करके टाइमआउट मिल रहा है जिसे पूरा होने में 30 सेकंड से अधिक का समय लगता है। मैंने निम्नलिखित की कोशिश की और इस मुद्दे को हल करने में सक्षम नहीं है:
मैंने उस प्रोजेक्ट में App.Config फ़ाइल में Default Command Timeout=300000कनेक्शन स्ट्रिंग में जोड़ा है जिसमें EDMX फ़ाइल है जैसा कि यहाँ सुझाया गया है ।
यह मेरा कनेक्शन स्ट्रिंग कैसा दिखता है:
<add
name="MyEntityConnectionString"
connectionString="metadata=res://*/MyEntities.csdl|res://*/MyEntities.ssdl|
res://*/MyEntities.msl;
provider=System.Data.SqlClient;provider connection string="
Data Source=trekdevbox;Initial Catalog=StarTrekDatabase;
Persist Security Info=True;User ID=JamesTKirk;Password=IsFriendsWithSpock;
MultipleActiveResultSets=True;Default Command Timeout=300000;""
providerName="System.Data.EntityClient" />
मैंने अपनी रिपॉजिटरी में कमांडटाइमआउट को सीधे इस तरह सेट करने की कोशिश की:
private TrekEntities context = new TrekEntities();
public IEnumerable<TrekMatches> GetKirksFriends()
{
this.context.CommandTimeout = 180;
return this.context.GetKirksFriends();
}
ईएफ को टाइमिंग से बाहर करने के लिए मैं और क्या कर सकता हूं? यह केवल बहुत बड़े डेटासेट के लिए होता है। छोटे डेटासेट के साथ सब कुछ ठीक काम करता है।
यहाँ मुझे मिलने वाली त्रुटियों में से एक है:
System.Data.EntityCommandExecutionException: कमांड परिभाषा निष्पादित करते समय एक त्रुटि हुई। विवरण के लिए आंतरिक अपवाद देखें। ---> System.Data.SqlClient.SqlException: समय समाप्त हो गया। ऑपरेशन पूरा होने से पहले का समय समाप्त हो गया है या सर्वर जवाब नहीं दे रहा है।
ठीक है - मुझे यह काम मिला और यह मूर्खतापूर्ण है कि क्या हुआ। मेरे पास दोनों कनेक्शन स्ट्रिंग के साथ Default Command Timeout=300000और कमांडटाइमआउट 180 पर सेट था। जब मैंने Default Command Timeoutकनेक्शन स्ट्रिंग से हटा दिया , तो यह काम किया। तो इसका उत्तर मैन्युअल रूप से आपके संदर्भ ऑब्जेक्ट पर रिपॉजिटरी में कमांडटाइमआउट सेट करना है जैसे:
this.context.CommandTimeout = 180;
स्पष्ट रूप से कनेक्शन स्ट्रिंग में टाइमआउट सेटिंग सेट करने का उस पर कोई प्रभाव नहीं पड़ता है।
"स्ट्रिंग में छोड़ दें ।
NONCLUSTEREDकुछ तालिकाओं में अनुक्रमित जोड़ने की आवश्यकता है , इससे हमारे लिए समयबाह्य मुद्दा हल हो गया।