2011-02-17 18 views
8

के साथ अपर्याप्त अनुमतियों के कारण कॉन्फ़िगरेशन फ़ाइल नहीं लिख सकता है, मैं विंडोज सेवा में एक वेब साइट प्रबंधित करने के लिए Microsoft.Web.Administration.ServerManager कक्षा का उपयोग करता हूं।applicationHost.config त्रुटि: आईआईएस साझा कॉन्फ़िगरेशन

मैं एक व्यवस्थापक उपयोगकर्ता के साथ अपने कोड में प्रतिरूपण का उपयोग करता हूं, उपयोगकर्ता को मेरे applicationHost.config को संशोधित करने का अधिकार है, लेकिन जब मैं .CommitChanges(); करता हूं तो मुझे हमेशा निम्न त्रुटि मिलती है।

मेरे कोड का एक उदाहरण है।

using (ServerManager svr = ServerManager.OpenRemote(args.IISName)) 
     {   
     Site currentSite = svr.Sites.Where(item => item.Id == args.WebSite.Id).FirstOrDefault();    
     currentSite.Applications[0].VirtualDirectories[0].PhysicalPath = args.WebSite.PhysicalPath; 
     svr.CommitChanges();   

     } 

मैं this solutions लगता है, लेकिन मेरे DCOM गुण वस्तु, ताला

Unhandled exception has occured in your application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the application will close immediately. FileName \?\UNC[MY PATH]\applicationHost.config Error: Cannot write configuration file due to insufficient permissions

मेरे सेटअप विंडोज 2008 R2 है 7.5 IIS, ढांचा 3.5 और मेरे applicationHost.config एक सैन

पर है मैं क्या कोशिश कर सकता हूँ?

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box. 

************** Exception Text ************** 
System.UnauthorizedAccessException: Filename: \\?\[MY PATH]\applicationHost.config 
Error: Cannot write configuration file due to insufficient permissions 


    at Microsoft.Web.Administration.Interop.IAppHostWritableAdminManager.CommitChanges() 
    at Microsoft.Web.Administration.ConfigurationManager.CommitChanges() 
    at Microsoft.Web.Administration.ServerManager.CommitChanges() 
    at Nms.IIS.Business.Manager.IISManager70.UpdateWebSiteEntity(UpdateWebSiteEntityArgs args) 
    at Nms.IIS.Business.Service.IISService70.UpdateWebSiteEntity(UpdateWebSiteEntityArgs args) 
    at IISSwitcher.Form1.btnProccess_Click(Object sender, EventArgs e) in C:\Form1.cs:line 70 
    at System.Windows.Forms.Control.OnClick(EventArgs e) 
    at System.Windows.Forms.Button.OnClick(EventArgs e) 
    at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 
    at System.Windows.Forms.Control.WndProc(Message& m) 
    at System.Windows.Forms.ButtonBase.WndProc(Message& m) 
    at System.Windows.Forms.Button.WndProc(Message& m) 
    at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 


************** Loaded Assemblies ************** 
mscorlib 
    Assembly Version: 2.0.0.0 
    Win32 Version: 2.0.50727.4952 (win7RTMGDR.050727-4900) 
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll 
---------------------------------------- 
IISSwitcher 
    Assembly Version: 1.0.0.0 
    Win32 Version: 1.0.0.0 
    CodeBase: file://[mypatch]/Altitude3%20Transfert/IISDirectorySwitch/IISSwitcher.exe 
---------------------------------------- 
System.Windows.Forms 
    Assembly Version: 2.0.0.0 
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900) 
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll 
---------------------------------------- 
System 
    Assembly Version: 2.0.0.0 
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900) 
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll 
---------------------------------------- 
System.Drawing 
    Assembly Version: 2.0.0.0 
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900) 
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll 
---------------------------------------- 
Nms.IIS.Business 
    Assembly Version: 1.0.295.8874 
    Win32 Version: 1.0.295.8874 
    CodeBase: file://[mypatch]/Altitude3%20Transfert/IISDirectorySwitch/Nms.IIS.Business.DLL 
---------------------------------------- 
Nms.Core 
    Assembly Version: 1.0.1954.8874 
    Win32 Version: 1.0.1954.8874 
    CodeBase: file://[mypatch]/Altitude3%20Transfert/IISDirectorySwitch/Nms.Core.DLL 
---------------------------------------- 
System.Configuration 
    Assembly Version: 2.0.0.0 
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900) 
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll 
---------------------------------------- 
System.Xml 
    Assembly Version: 2.0.0.0 
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900) 
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll 
---------------------------------------- 
Microsoft.Practices.Unity 
    Assembly Version: 1.2.0.0 
    Win32 Version: 1.2.0.0 
    CodeBase: file://[mypatch]/Altitude3%20Transfert/IISDirectorySwitch/Microsoft.Practices.Unity.DLL 
---------------------------------------- 
Microsoft.Practices.Unity.Interception 
    Assembly Version: 1.2.0.0 
    Win32 Version: 1.2.0.0 
    CodeBase: file://Microsoft.Practices.Unity.Interception.DLL 
---------------------------------------- 
Microsoft.Practices.ObjectBuilder2 
    Assembly Version: 2.2.0.0 
    Win32 Version: 2.2.0.0 
    CodeBase: file://Microsoft.Practices.ObjectBuilder2.DLL 
---------------------------------------- 
System.Core 
    Assembly Version: 3.5.0.0 
    Win32 Version: 3.5.30729.4926 built by: NetFXw7 
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Core/3.5.0.0__b77a5c561934e089/System.Core.dll 
---------------------------------------- 
Nms.Core.resources 
    Assembly Version: 1.0.1954.8874 
    Win32 Version: 1.0.1954.8874 
    CodeBase: file://Nms.Core.resources.DLL 
---------------------------------------- 
Unity_ILEmit_InterfaceProxies 
    Assembly Version: 0.0.0.0 
    Win32 Version: 1.2.0.0 
    CodeBase: file://Microsoft.Practices.Unity.Interception.dll 
---------------------------------------- 
Microsoft.Web.Administration 
    Assembly Version: 7.0.0.0 
    Win32 Version: 6.1.7600.16385 
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.Web.Administration/7.0.0.0__31bf3856ad364e35/Microsoft.Web.Administration.dll 
---------------------------------------- 
System.Runtime.Serialization 
    Assembly Version: 3.0.0.0 
    Win32 Version: 3.0.4506.4926 (NetFXw7.030729-4900) 
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Serialization/3.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll 
---------------------------------------- 

************** JIT Debugging ************** 
To enable just-in-time (JIT) debugging, the .config file for this 
application or computer (machine.config) must have the 
jitDebugging value set in the system.windows.forms section. 
The application must also be compiled with debugging 
enabled. 

For example: 

<configuration> 
    <system.windows.forms jitDebugging="true" /> 
</configuration> 

When JIT debugging is enabled, any unhandled exception 
will be sent to the JIT debugger registered on the computer 
rather than be handled by this dialog box. 

उत्तर

6

अपने डीकॉम गुण वस्तु को अनलॉक करने के लिए, आपके पास केवल 2 कदम हैं।

चरण 1 - प्रदान करें क्या आप 'पूर्ण नियंत्रण' 'Ahadmin.dll' पर:

  • गोटो अपने आईआईएस सर्वर और फ़ोल्डर में 'c: \ windows \ system32 \' ब्राउज़
  • ढूँढें 'Ahadmin .dll 'और गुण बॉक्स को खोलने के लिए राइट क्लिक करें
  • गोटो' सुरक्षा 'टैब और अपने एनटी उपयोगकर्ता' पूर्ण नियंत्रण 'को अनुदान दें
  • यदि आप' पूर्ण नियंत्रण 'देने में सक्षम नहीं हैं, तो' मालिक का टैब और अपना एनटी उपयोगकर्ता या एक व्यवस्थापक समूह जोड़ें जिसे आप सदस्य हैं और 'लागू करें'पर क्लिक करेंऔर 'सुरक्षा' पट्टी में लौटने से आपको देने के लिए 'पूर्ण नियंत्रण'

चरण 2 - प्रदान करें क्या आप 'पूर्ण नियंत्रण' रजिस्ट्री कुंजी पर:

  • आईआईएस सर्वर खुला 'रजिस्ट्री पर संपादक '(रन कमांड: regedit)।
  • अपने कर्सर को बाएं फलक में रूट पर रखें।
  • एक खोज बॉक्स खोलें और 'ahadmin' टाइप करें और ढूंढें क्लिक करें।
  • रजिस्ट्री को दाएं फलक में एक कुंजी मिल जाएगी।राइट इस कुंजी की मूल फ़ोल्डर पर क्लिक करें और खुले गुण
  • गोटो 'सुरक्षा' पट्टी बॉक्स और अपने NT उपयोगकर्ता पूर्ण नियंत्रण '
  • को अनुदान क्या आप प्रदान करने के लिए' पूर्ण नियंत्रण 'नहीं कर पा रहे हैं, तो गोटो 'मालिक' टैब और अपने NT उपयोगकर्ता या व्यवस्थापक समूह है कि आप सदस्य हैं और 'लागू करें' और 'सुरक्षा' पट्टी में लौटने से आप अब आप कर सकते हैं 'पूर्ण नियंत्रण'

    देने के लिए क्लिक करें जोड़ने अपने DCOM गुण आपत्ति

    DCOM porperties वस्तु अभी भी ताला है, बस कुछ मिनट प्रतीक्षा करें और agai का प्रयास करें संपादित एन।

    उसके बाद, आप सिर्फ प्रक्रिया here पालन करने के लिए।

+0

यह मेरे लिए काम करता है - अजीब ** डब्ल्यूसीएफ ऑटो-स्टार्ट ** गुण लागू करते समय शिकायत कर रहा था। त्रुटि: * "कॉन्फ़िगरेशन को सहेजते समय एक त्रुटि आई। अतिरिक्त जानकारी के लिए विवरण की समीक्षा करें। इस संवाद को खारिज करने के बाद परिवर्तनों को फिर से लागू किया जा सकता है। फ़ाइल नाम: \\? \ C: \ Windows \ system32 \ inetsrv \ c।। \ ApplicationHost। कॉन्फ़िगरेशन त्रुटि: कॉन्फ़िगरेशन फ़ाइल नहीं लिख सकता "* – SliverNinja

0

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

+0

इन पंक्तियों के साथ, (राइट क्लिक करें, गुण, सुरक्षा, उन्नत, प्रभावी अनुमतियों की तरह कुछ) फ़ाइल पर प्रभावी अनुमतियों की जाँच करें। इससे आपको फ़ाइल सिस्टम स्तर (एनटीएफएस) पर उपयोगकर्ता क्या कर सकता है इसकी आधिकारिक सूची देनी चाहिए। –

+0

हरकत सही है, लेकिन अभी भी काम नहीं कर रहा है –

0

यदि वर्चुअल निर्देशिका किसी साझा फ़ोल्डर में मैप की गई है। विंडोज 7/w2k8 शेयरों के तहत डिफ़ॉल्ट रूप से शेयर की अनुमतियों को देखें: सभी (पढ़ें)। शेयर की अनुमतियों को बदलना: हर कोई (पूर्ण नियंत्रण)

यह आईआईएस को साझा करने के लिए आवश्यक चीज़ों को करने की अनुमति देता है, क्योंकि यह पूर्ण भौतिक पथ का उपयोग नहीं कर रहा है।

5

हमारे मामले में सर्वर डिस्क भर गई थी। हमने addtional डिस्क स्पेस जोड़ा और समस्या हल हो गई है।

0

सुनिश्चित करें कि परियोजना के साथ फ़ोल्डर एन्क्रिप्टेड नहीं है। विजुअल स्टूडियो में एन्क्रिप्टेड फ़ोल्डर्स के साथ काम करने में समस्याएं हैं।

मैं अपने उपयोगकर्ता फ़ोल्डर एन्क्रिप्टेड और परियोजनाओं नहीं खुलेगा जब तक मैं इन फ़ोल्डरों के रूप में गैर-एन्क्रिप्टेड चिह्नित किया है। यह एक मूर्खतापूर्ण है कि वीएस एक सार्थक त्रुटि प्रदान नहीं करता है जिसमें कहा गया है कि आपको प्रोजेक्ट फ़ोल्डर से एन्क्रिप्शन को हटा देना चाहिए।

निकालने के लिए एन्क्रिप्शन सही प्रोजेक्ट फ़ोल्डर, फिर उन्नत क्लिक करें, फिर एन्क्रिप्ट चेकबॉक्स अचयनित। फ़ोल्डर को स्वयं और सभी नेस्टेड फ़ोल्डरों और फ़ाइलों में परिवर्तन लागू करें।

Disable encryption

2

मैं अपने समाधान से मौजूदा ApplicationHost.config फ़ाइल को नष्ट कर दिया और समाधान फिर से पुनः लोड है। समाधान ने नई ApplicationHost.config फ़ाइल स्वयं बनाई है।

यह मेरी समस्या का समाधान किया।

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