से पहले काम करने के बावजूद नेटवर्क फ़ाइल को प्रोग्रामिक रूप से नहीं खोल सकता है, मैंने एक SQLite डेटाबेस फ़ाइल खोलने के लिए नीचे दिए गए कोड का उपयोग किया है जो लगभग एक वर्ष से अधिक समय तक नेटवर्क कंप्यूटर पर बैठता है। अचानक सुबह, मैं प्रोग्राम को प्रोग्रामेटिक रूप से खोलने में सक्षम नहीं हूं।SQLite:
private Boolean Connect(String strPathFile)
{
// Initialize the connection object.
this.DbConnection = null;
try
{
// DATABASE: Create the connection string and set the settings.
String strConnection = @"Data Source=" + strPathFile + @";Version=3;";
// DATABASE: Connect to the database.
this.DbConnection = new SQLiteConnection(strConnection);
this.DbConnection.Open();
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return false;
}
फ़ाइल प्रपत्र "\ सर्वर \ ShareName \ FileName.db" (कम डबल कोट्स) में एक नेटवर्क संसाधन है।
यहां दिलचस्प बात है। SQLite व्यवस्थापक को नेटवर्क डेटाबेस फ़ाइल, कोई नहीं, और बार-बार खोलने में कोई समस्या नहीं है। मैं स्थानीय रूप से फ़ाइल खोल सकता हूं। मैंने फ़ाइल को अपने स्थानीय ड्राइव पर कॉपी किया और बस विजुअल स्टूडियो 2012 (वीएस2012) के अंदर पथ बदल दिया।
सर्वर ठीक लग रहा था। पिछली बार जब मैंने इसकी जांच की थी, तब से यह किसी बिंदु पर रीबूट के माध्यम से चला गया था। मैं एक माइक्रोसॉफ्ट अपडेट मानता हूं। फ़ाइल एक्सप्लोरर में फ़ोल्डर ब्राउज़ करने में कोई समस्या नहीं है, और जैसा कि मैंने कहा है कि SQLite व्यवस्थापक नेटवर्क फ़ाइल खोल सकता है।
मैंने अनुमतियों पर एक बार फिर से जांच की है और सभी के पास पूर्ण नियंत्रण है और साथ ही सर्वर के उपयोगकर्ताओं के पास सुरक्षा अनुमतियों और शेयर अनुमतियों पर पूर्ण नियंत्रण है। मैंने फ़ोल्डर और फ़ाइल की जांच की, और अनुमतियां समान हैं। मुझे बहुत उम्मीद थी, क्योंकि SQLite व्यवस्थापक फ़ाइल खोल सकता है। सर्वर में फ़ायरवॉल सेट अप नहीं है, विंडोज फ़ायरवॉल या अन्यथा। मैंने आज सुबह भी दोबारा जांच की। फिर, एसक्यूएलएट प्रशासक ने इसके बारे में शिकायत की होगी।
मैंने फ़ाइल एक्सप्लोरर का उपयोग कर नेटवर्क ड्राइव पर फ़ाइल की एक प्रति बनाकर लेखन सत्यापित किया। इसमें कोई समस्या नहीं थी।
सेवर एक विंडोज सर्वर 2003 है। मैं विंडोज 7 पेशेवर 64-बिट का उपयोग कर रहा हूं।
मैंने डेटाबेस को केवल पढ़ने के लिए मोड खोलने का प्रयास किया, लेकिन यह भी असफल रहा। मैं उस व्यवहार की उम्मीद कर रहा था। SQLite व्यवस्थापक अभी भी अच्छी तरह से काम करता है।
मैं SQLiteConnectionStringBuilder() सिर्फ देखने के लिए कि क्या होता है सहित विभिन्न अन्य कनेक्शन तार करने की कोशिश की, और सभी सड़कों रोम करने के लिए नेतृत्व अर्थात्:
System.Data.SQLite.SQLiteException occurred
HResult=-2147467259
Message=unable to open database file
Source=System.Data.SQLite
ErrorCode=14
StackTrace:
at System.Data.SQLite.SQLite3.Open(String strFilename, SQLiteConnectionFlags connectionFlags, SQLiteOpenFlagsEnum openFlags, Int32 maxPoolSize, Boolean usePool)
at System.Data.SQLite.SQLiteConnection.Open()
at SQL.cSQL.Connect(String strPathFile) in C:\<Path to source file>:line 367
InnerException:
विचार?
.net3.5 से .NET4 तक अपग्रेड करने के बाद भी मुझे वही बात हुई। अभी तक कोई समाधान नहीं मिला है। :( – henon
मैं इस मुद्दे के बारे में भूल गया था। मैंने कुछ किया, दुख की बात नहीं है कि इस समय क्या था, और समस्या दूर हो गई। मैंने इस मुद्दे को हल करने के लिए प्रोग्रामेटिक रूप से कुछ नहीं किया। संकल्प कुछ ऐसा था जो मैंने सर्वर पर किया था आप सर्वर को रिबूट करने का प्रयास करना चाह सकते हैं। समस्या को फाइल लॉकिंग या पसंद के साथ कुछ करना था। –