2011-06-23 12 views
14

मेरे पास सी # द्वारा बनाई गई वेबसाइट है जो सर्वर में सेवाओं को शुरू करना है।
कंप्यूटर पर '<MyService> सेवा नहीं खोल सकता है।'

instsrv MyService %systemroot%\system32\srvany.exe 

तो मैं इसे कहते हैं निम्नलिखित कोड का उपयोग करता है:

मैं इस का उपयोग कर एक सेवाओं MyService नामक

ServiceController service = new ServiceController("MyService"); 
try 
{ 
    service.Start(); 
} 
catch (Exception ex) 
{ 
    Response.Write(ex.Message); 
} 

लेकिन जब मैं वेबसाइट का उपयोग और इस घटना को ट्रिगर यह, मुझे

Cannot open <MyService> service on computer '.'

क्या यह सुरक्षा या अनुमति समस्या के कारण है ?? स्पष्ट चरणों के साथ कोई भी गाइड अत्यधिक सराहना की है।

+1

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

+0

@steve: मेरे संदेह के लिए खेद है, आप किस पहचान का मतलब है ?? अगर यह वेब सेवा है। क्या इसे हल करने का कोई और तरीका है ?? मैं प्रशासक समूह के रूप में नेटवर्क सेवा जोड़ने का प्रयास करता हूं। मैं सेवा> गुण> लॉग ऑन> नेटवर्क्स सेवा के रूप में लॉग ऑन पर प्रयास करता हूं। ऐसा लगता है कि यह भी हल नहीं होता है। – NewBirth

उत्तर

2

मैंने वास्तव में शीर्ष परिदृश्य की समस्या को हल किया है।

  • इस मामले में सेवा "MyService" लॉग स्थानीय सिस्टम खाते पर विशेष वेबसाइट के लिए, एक आवेदन पूल की स्थापना की और सेवा डेस्कटॉप
  • आईआईएस प्रबंधक में के साथ बातचीत करने की अनुमति दें जाँच करने के लिए बनाने की जरूरत है । और इसमें वेबसाइट लोड करें।
  • विशेष अनुप्रयोग पूल Identitys जरूरत स्थानीय Syatem

ये क्या IIS में की जरूरत है और services.msc

दूसरी ओर में है करने के लिए पूर्वनिर्धारित, वहां अभी भी होगा मैक पते के बारे में त्रुटि हो।
तो, हमें machineKey Generator द्वारा उत्पन्न किया जा सकता है।
नीचे दिए गए टैग पर पेस्ट करने के लिए जेनरेट की गई मशीन की आवश्यकता है।

फिर नीचे दिए गए उद्धरण के पूरे ब्लॉक शायद स्थिति तुम लोगों का सामना करना पड़ा अलग हो सकता है कॉपी और Web.config

<pages buffer="false" 
enableViewState="false" 
enableSessionState="false" 
enableViewStateMac="false" 
validateRequest="false" 
enableEventValidation="false" 
viewStateEncryptionMode ="Never"/> 

<machineKey 
validationKey="8FCCB821044C5174C551129400F278B5629C64EAC195046DA5FE608EF418913C1139636E13FE 9F8C35AD3C10C394CAC1D9CEBB8B6BDA018165E91136B1AADBE1" 
decryptionKey="3F260119F4CC0A0DD8C6B4979C70644A0ED2DD19B3ADB00F85FB7C83634FC544" 
validation="SHA1" 
decryption="AES" 
/> 

में पेस्ट और समस्या तो हल हो जाएगा, लेकिन मैं इसे के रूप में किसी की मदद कर सकते हैं आशा मैं इस काफी लंबे समय में संघर्ष करता हूं।

इसके अतिरिक्त, मैं इस कोड का उपयोग करता हूं ताकि सेवाओं को शुरू और बंद करने पर कोई संघर्ष न हो।

if (service.Status == ServiceControllerStatus.Stopped) 
     { 

      try 
      { 
       service.Start(); 

      } 
      catch (Exception ex) 
      { 
       Response.Write(ex.Message); 
      } 

     } 
     else 
     { 
      try 
      { 
       service.Stop(); 
       service.Start(); 

      } 
      catch (Exception ex) 
      { 
       Response.Write(ex.Message); 
      } 

     } 

अच्छी किस्मत और मदद के लिए आप लोग धन्यवाद।

रेफरी: http://www.csharp-examples.net/restart-windows-service/
http://forums.asp.net/t/906759.aspx/3/10

2

आईआईएस (संस्करण 6 और उच्चतम) के साथ, वेब ऐप्स एक एप्लिकेशन पूल का उपयोग कर चलाए जाते हैं। ईएच एप्लिकेशन पूल एक विशिष्ट उपयोगकर्ता (पहचान) के साथ चलाया जा सकता है, जो डिफ़ॉल्ट रूप से, नेटवर्क सेवा है। यह उपयोगकर्ता स्थानीय प्रशासकों को जोड़ने का एक बहुत बुरा विचार है।

संभव तरीके:

  • आवश्यक विशेषाधिकार शुरू करने के लिए/इस पहचान का उपयोग करने के लिए एक समर्पित अनुप्रयोग पूल इस प्रयोक्ता, सेटअप करने के लिए सेवा बंद करो और खाते सुनिश्चित अनुदान एएसपी/.net आवेदन करने के लिए पढ़ने की पथ।
  • एक समर्पित खाता भी बनाते हैं। आपके आवेदन के भीतर, कॉन्फ़िगरेशन में सुरक्षित रूप से संग्रहीत उपयोगकर्ता नाम/पासवर्ड का उपयोग करके सेवा प्रबंधन से कनेक्ट करें (अनुभाग को क्रिप्ट करें)। मुझे यकीन नहीं है कि क्या आप सेवा नियंत्रण के साथ उपयोगकर्ता/पासवर्ड निर्दिष्ट कर सकते हैं, लेकिन आप कम से कम, WMI या Process का उपयोग कर सकते हैं। नेट स्टॉप/नेट स्टार्ट कमांड के साथ प्रारंभ करें।
+0

एक बहुत ही विचार क्या है? अच्छा या बुरा? – configurator

+0

एक बीएडी विचार ... संपादित :) –

1

हाय मैं क्लीनर शामिल एक ही समस्या सभी समूह है कि मैं के बारे में सोचा की अनुमति दे दिया गया था और यह अंत में मदद फ्लॉप मैं अपने वेब config

में इस लाइन की कोशिश की
<identity impersonate="true" userName="Domainname\admin" password="123" /> 
1

यह कोई संबंधित समस्या के साथ किसी की मदद कर सकता है:

अपने सर्वर पर, एक powershell commandlet वही त्रुटि messag साथ असफल रहा था ई। ऐसा इसलिए था क्योंकि, अगर मैं स्थानीय व्यवस्थापक के रूप में लॉग इन किया गया था, तो मुझे PowerShell पर्यावरण को व्यवस्थापक के रूप में चलाने की आवश्यकता थी (राइट क्लिक करें, व्यवस्थापक के रूप में चलाएं)।

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