2012-07-20 15 views
42

हाय से सेवा प्रारंभ नहीं कर सकता मैं इस त्रुटि कमांड लाइन या डीबगर सेWindows सेवा शुरू विफलता: कमांड लाइन या डीबगर

सेवा प्रारंभ नहीं कर सकता हो रही है। एक Winwows सेवा को पहले स्थापित किया जाना चाहिए (installutil.exe का उपयोग करके) और फिर ServerExplorer, Windows Services Afministrative Tool या नेट स्टार्ट कमांड के साथ शुरू किया जाना चाहिए।

और मुझे नहीं पता कि मुझे यह त्रुटि क्यों मिल रही है। और यहाँ मेरे कोड है:

{ 
    string Hash = ""; 
    string connectionstring = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString; 
    SqlConnection myConnection = new SqlConnection(connectionstring); 
    SqlCommand myCommand = new SqlCommand("GetNullHash", myConnection); 
    myCommand.CommandType = CommandType.StoredProcedure; 
    myConnection.Open(); 
    SqlDataReader rdr = myCommand.ExecuteReader(); 

    while (rdr.Read()) 
    { 
     string filename = @"\\" + rdr.GetString(3); 
     filename = System.IO.Path.Combine(filename, rdr.GetString(2)); 
     filename = System.IO.Path.Combine(filename, rdr.GetString(1)); 
     Hash = rdr.GetString(0); 
     Hash = computeHash(filename); 

    } 
    myConnection.Close(); 
    return Hash; 
} 

उत्तर

52

देखें this video, मेरे पास एक ही सवाल था। वह आपको दिखाता है कि सेवा को कैसे डिबग करना है।

विजुअल स्टूडियो 2010/2012 में मूल सी # विंडोज सेवा टेम्पलेट का उपयोग करके उनके निर्देश यहां दिए गए हैं।

आप Service1.cs फ़ाइल से जोड़ें:

public void onDebug() 
{ 
    OnStart(null); 
} 

आप अपने मुख्य() बदलने के लिए यदि आप डीबग सक्रिय समाधान विन्यास में हैं आपकी सेवा इस तरह से कॉल करने के लिए।

static void Main() 
{ 
    #if DEBUG 
    //While debugging this section is used. 
    Service1 myService = new Service1(); 
    myService.onDebug(); 
    System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite); 

    #else 
    //In Release this section is used. This is the "normal" way. 
    ServiceBase[] ServicesToRun; 
    ServicesToRun = new ServiceBase[] 
    { 
     new Service1() 
    }; 
    ServiceBase.Run(ServicesToRun); 
    #endif 
} 

ध्यान रखें कि यह आपकी सेवा को डीबग करने का एक शानदार तरीका है। यह OnStop() पर कॉल नहीं करता है जब तक कि आप onDebug() फ़ंक्शन में इसे स्पष्ट रूप से कॉल करने के तरीके के समान कहते हैं।

+0

में देख सकता हूं। किसी ने मुझे एक "डुह" टिप भी दी जो कहा: अपनी कक्षा को सामान्य रूप से विकसित करना डिबग करने योग्य एप्लिकेशन तब कक्षा में तैयार होने पर आपको अपनी सेवा में आयात करें। – Cesar

+0

मैं जो काम करता हूं उसे उन कार्यों को रखा गया था जिन्हें मुझे टाइमर.स्टार्ट(); के बाद ऑनस्टार्ट विधि में डीबग करने की आवश्यकता है, इसलिए इसके साथ मैं डीबग कर सकता हूं। –

0

आपका कोड सेवा स्थापना के साथ कोई लेना देना नहीं है, यह समस्या नहीं है।

सेवा का परीक्षण करने के लिए, आपको इसे संकेत के रूप में स्थापित करना होगा।

आपकी सेवा स्थापित करने के बारे में अधिक जानकारी के लिए: Installing and Uninstalling Services

25

आपकी सेवा स्थापित करने के लिए मैन्युअल रूप से

स्थापित करने के लिए या स्थापना रद्द करें विंडोज़ सेवा मैन्युअल रूप से (जो .NET फ्रेमवर्क का उपयोग कर बनाया गया था) उपयोगिता InstallUtil.exe का उपयोग करें। यह टूल निम्न पथ में पाया जा सकता है (उपयुक्त फ्रेमवर्क संस्करण संख्या का उपयोग करें)।

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe

स्थापित करने के लिए

installutil yourproject.exe 

स्थापना रद्द करने के

installutil /u yourproject.exe 

देखें: How to: Install and Uninstall Services(MSDN)

सेवा programmaticall स्थापित करें y

सेवा स्थापित करने के लिए प्रोग्राम के रूप में उपयोग करते हुए सी # निम्नलिखित वर्ग ServiceInstaller(ग-sharpcorner) देखते हैं।

+0

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

+4

'installutil' चलाने के बाद यह कहता है कि यह सफल रहा, लेकिन मैं अभी भी सेवा शुरू नहीं कर सकता हूं या इसे सेवा प्रबंधक – Bassie

0

मैं इसे तैनात करते समय कारणों के लिए एक सेटअप प्रोजेक्ट बनाने का सुझाव दूंगा, यह सबसे अच्छा विश्वास है, फ़ाइलों को मैन्युअल रूप से कॉपी करने का कोई सिरदर्द नहीं है। Windows service setup creation tutorial का पालन करें और आप जानते हैं कि इसे कैसे बनाया जाए। और यह उदाहरण vb.net के लिए है लेकिन यह किसी भी प्रकार के लिए समान है।

0

{YourServiceName} -i में खोलें अध्यक्ष एवं प्रबंध निदेशक और प्रकार स्थापित करने के लिए एक बार NET START {YourserviceName} में अपनी इंस्टॉल किए गए प्रकार आपकी सेवा शुरू करने के लिए

की स्थापना रद्द करने {YourServiceName} -u में खोलें अध्यक्ष एवं प्रबंध निदेशक और प्रकार की स्थापना रद्द करने NET STOP {YourserviceName} एक बार बंद कर दिया प्रकार में है और इसे अनइंस्टॉल हो जाएगा

-1

गोटो App.config

खोजें

<setting name="RunAsWindowsService" serializeAs="String"> 
    <value>True</value> 
    </setting> 

झूठी

+0

क्या इस सेटिंग के लिए कोई ऑनलाइन दस्तावेज है? मैं इसे कहां जोड़ूं? मैंने एप्लिकेशन सेटिंग्स की कोशिश की और इसका कोई प्रभाव नहीं पड़ा। – bornfromanegg

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