त्रुटि को रोक दिया गया, आमतौर पर, मुझे यह त्रुटि मिलती है: (स्थानीय कंप्यूटर पर "सेवा नाम" सेवा शुरू हो गई और फिर बंद कर दिया गया। कुछ सेवाएं स्वचालित रूप से बंद हो जाती हैं अगर वे अन्य सेवा द्वारा उपयोग में नहीं हैं या कार्यक्रम) जब मेरे कोड में कुछ गड़बड़ है, जैसे गैर-मौजूदा ड्राइव पथ आदि। विंडोज सेवा शुरू नहीं होगी।स्थानीय कंप्यूटर पर विंडोज सेवा शुरू हुई और फिर
मेरे पास एक विंडो सेवा है जो फ़ोल्डर/फ़ाइलों का बैक अप लेती है, यदि यह आकार सीमा तक पहुंच जाती है। विवरण सभी एक एक्सएमएल कॉन्फ़िगरेशन द्वारा प्रदान किए जाते हैं जो विंडोज सेवा प्रारंभ पर पढ़ता है। मेरे पास एक अलग विंडोज़ फॉर्म हैं जिनमें एक बटन है जो वास्तव में मेरी विंडोज़ सेवा ऑनस्टार्ट कर रहा है। मैं अपनी विंडोज़ सेवा में रखे जाने से पहले कोड को डिबग करने के लिए अपने विंडोज़ फॉर्म का उपयोग करता हूं।
जब मैं अपने विंडोज़ फॉर्म शुरू करता हूं। ऐसा लगता है कि ऐसा करना है। जब मैं अपना कोड विंडोज सेवा ऑनस्टार्ट() विधि में डालता हूं तो त्रुटि दिखाई देती है।
यहाँ मेरी कोड है:
protected override void OnStart(string[] args)
{
private static string backupConfig = @"D:\LogBackupConfig\backupconfig.xml";
private static string serviceStat = @"D:\LogBackupConfig\Status.txt";
private static string fileFolderStat = @"D:\LogBackupConfig\FileFolderStat.txt";
protected override void OnStart(string[] args)
{
if (File.Exists(backupConfig))
{
FileSystemWatcher watcher = new FileSystemWatcher();
XmlTextReader reader = new XmlTextReader(backupConfig);
XmlNodeType type;
List<string> listFile = new List<string>();
string fileWatch = "";
//this loop is for reading XML elements and assigning to variables
while (reader.Read())
{
type = reader.NodeType;
if (type == XmlNodeType.Element)
{
if (reader.Name == "File")
{
reader.Read();
fileWatch = reader.Value;
}
else if (reader.Name == "Folder")
{
reader.Read();
fileWatch = reader.Value;
}
}
}
reader.Close();
watcher.Path = fileWatch;
watcher.Filter = "*.*";
//this loop reads whether the service will watch a file/folder
XmlTextReader reader1 = new XmlTextReader(backupConfig);
while (reader1.Read())
{
type = reader1.NodeType;
if (type == XmlNodeType.Element)
{
if (reader1.Name == "File")
{
watcher.IncludeSubdirectories = false;
watcher.Changed += new FileSystemEventHandler(OnChangedFile);
}
else if (reader1.Name == "Folder")
{
watcher.IncludeSubdirectories = true;
watcher.Changed += new FileSystemEventHandler(OnChangedFolder);
}
}
}
reader1.Close();
watcher.EnableRaisingEvents = true;
}
else
{
StreamWriter sw = new StreamWriter(serviceStat, true);
sw.WriteLine("File not found. Please start the Log Backup UI first.");
sw.Close();
}
}
मैं क्या रहता है खिड़कियों सेवा शुरू नहीं पता नहीं है, खिड़कियों प्रपत्र सिम्युलेटर ठीक काम किया। आखिर समस्या क्या लग रही है?
अद्यतन: कई परीक्षणों के बाद मैंने देखा है कि केवल एक फ़ोल्डर निर्देशिका (डब्ल्यू/आउट फ़ाइल) का उपयोग करके, विंडोज सेवा काम नहीं करती है। जब मैंने फ़ाइल वैच वैरिएबल को एक विशिष्ट फ़ाइल (इसकी निर्देशिका सहित) के साथ बदल दिया, तो विंडोज़ सेवा शुरू हुई। जब मैंने इसे किसी फ़ोल्डर स्थान पर बदल दिया, तो यह काम नहीं किया। मुझे लगता है कि फ़ोल्डर स्थान फ़ाइलवॉचर में काम नहीं करता है।
जब मैंने एक नई विंडो सेवा बनाने की कोशिश की जो फ़ोल्डर स्थान देखता है, तो यह काम करता है .. हालांकि, जब मैंने अपनी मूल विंडोज सेवा में एक ही स्थान की कोशिश की, तो यह काम नहीं किया! मैं दिमाग $ # * एड था! ऐसा लगता है कि मुझे एक नई विंडोज सेवा बनाना है और हर बार जब मैं एक नया कोड/फ़ंक्शन डालता हूं तो इंस्टॉलर का निर्माण करना होता है .. इस तरह मैं ट्रैक रख सकता हूं जहां मुझे कोई त्रुटि मिलती है।
आपको बहुत बहुत धन्यवाद! मैंने कोशिश की और यह त्रुटि है: "सेवा शुरू नहीं की जा सकती है। सिस्टम। ऑर्ग्यूमेंट अपवाद: पथ कानूनी रूप से नहीं है। System.IO.Path.NormalizePath (स्ट्रिंग पथ, बूलियन फुल चेक, Int32 maxPathLength) सिस्टम पर IO.Path.GetFullPathInternal (स्ट्रिंग पथ) System.IO.Path पर।GetFullPath (स्ट्रिंग पथ) System.IO.FileSystemWatcher.StartRaisingEvents पर () System.IO.FileSystemWatcher.set_EnableRaisingEvents पर (बूलियन वैल्यू) LogBackupWinSvc.Service1.OnStart पर (String [] args) System.ServiceProcess.ServiceBase पर । ServiceQueuedMainCallback (ऑब्जेक्ट स्टेट) " – Blackator
विंडोज इवेंट व्यूअर ने पूरा स्टैक ट्रेस दिखाया, बहुत उपयोगी टूल। –