समाधान: पर System.IO.FileNotFoundException “SPSite नए SPSite =(यूआरएल)”

अद्यतन: मैं MSDN करने के लिए इस सवाल यहाँ पोस्ट (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) और के साथ एक संक्षिप्त जवाब Michael Washam माइक्रोसॉफ्ट का जवाब दिया.

मैं एक वेब सेवा के रूप में कार्य करने के लिए बनाई गई एक BDC के अनुकूल मुखौटे किसी SharePoint सूची में. जब मैं यह मेरी विकास के वातावरण से इस्तेमाल किया, यह ठीक काम किया. जब मैं यह करने के लिए एक नया सर्वर माइग्रेट किए गए, मैं इस त्रुटि का सामना करना पड़ा:

System.IO.FileNotFoundException: वेब अनुप्रयोग पर http://localhost/sandbox ढूँढा नहीं जा सका. सत्यापित करें कि आपने URL ठीक से लिखा है. यदि URL मौजूदा सामग्री की सेवा होना चाहिए, सिस्टम व्यवस्थापक एक नया अनुरोध URL मैपिंग जोड़ें करने के लिए इच्छित अनुप्रयोग की आवश्यकता हो सकती. पर Microsoft.SharePoint.SPSite...ने(SPFarm खेत, उड़ी requestUri, बूलियन contextSite, SPUserToken userToken) पर Microsoft.SharePoint.SPSite...ने(स्ट्रिंग requestUrl) पर Conchango.xyzzy.GetExistingDocument(स्ट्रिंग minId, स्ट्रिंग maxId, स्ट्रिंग titleFilter) सी में:\दस्तावेजों और SettingsPaulMy DocumentsVisual स्टूडियो 2005ProjectsxyzzyBDC_DocReviewBDC_DocReviewDocReviewFacade.asmx.cs:रेखा 69

यहाँ रेखा है 69:

का उपयोग कर (SPSite साइट नई SPSite =("http://localhost/sandbox"))

मैं यूआरएल पर अलग अलग रूपों की कोशिश की, सर्वर का वास्तविक नाम का उपयोग कर सहित, अपने IP पता, URL पर अनुगामी स्लैश, आदि. मैं हमेशा उस त्रुटि है.

मैं प्रयोग किया जाता गूगल यह अनुसंधान करने के लिए. बहुत से लोग इस मुद्दे का सामना, या यह बदलाव का, लेकिन कोई भी इसे हल किया है लग रहा था.

Tricksy काई प्रदान की ऐसी कोई विस्तृत त्रुटि है कि यह घटित नहीं था, मुझे करने के लिए जाँच करने के लिए 12 हाइव लॉग्स. अंततः, के बारे में 24 घंटे के बाद मेरे सहयोगी मैं ऐसा है की सिफारिश की, मैं की जाँच 12 लॉग hive और यह पाया:

स्थानीय खेत हासिल करने का प्रयास करते समय एक अपवाद उत्पन्न हुई:
System.Security.SecurityException: अनुरोध की गई रजिस्ट्री पहुँच अनुमति नहीं है.
पर System.ThrowHelper.ThrowSecurityException(ExceptionResource संसाधन) पर Microsoft.Win32.RegistryKey.OpenSubKey(स्ट्रिंग नाम, बूलियन लेखनयोग्य) पर Microsoft.Win32.RegistryKey.OpenSubKey(स्ट्रिंग नाम) पर Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_RegistryConnectionString() पर Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_Local() पर Microsoft.SharePoint.Administration.SPFarm.FindLocal(SPFarm& खेत, बूलियन& isJoined)
कि विफल असेंबली क्षेत्र था:  MyComputer

इस शोध के नए रास्ते को खोला, तो यह Google को वापस किया गया. कि मुझे यह करने के लिए नेतृत्व मंच पोस्ट: http://forums.codecharge.com/posts.php?post_id = 67135. कि वास्तव में मुझे मदद नहीं किया, लेकिन यह मुझे लगता है कि वहाँ एक डेटाबेस और/या सुरक्षा मुद्दा था बनाने शुरू किया था. मैं soldiered और एंड्रयू Connell सोचा था कि मैं था कि अनुप्रयोग पूल पहचान खाता डेटाबेस के लिए उपयुक्त पहुँच सुनिश्चित करना चाहिए कि आखिर ट्रिगर पोस्ट. मैंने सोचा था कि यह पहले से ही किया था. हालांकि, मेरे सहयोगी के पास गया और SQL करने के लिए अनुप्रयोग पूल पहचान खाता पूर्ण पहुँच दे दी.

जैसे ही वह उस बदल दिया, सब कुछ काम करना शुरू कर दिया.

आगे क्या हुआ सबसे अच्छा है के रूप में व्यक्त की एक हाइकू कविता:

समस्याओं के अपने अपने हाथ उठाएँ.
तुम स्विंग और याद आती है. फिर कोशिश करो.
सफलता! लेकिन यह कैसे? क्यों?

वह चीजों की तरह है कि अकेले छोड़ना चाहता था, न्यूनतम आवश्यक अनुमति देने के लिए पसंद करते हैं (और शायद एक ब्लॉग प्रविष्टि लिखने के लिए; मैं उसे पंच को हराया, muhahahahaha!).

वह जब तक अनुप्रयोग पूल पहचान खाता से उत्तरोत्तर अनुमतियाँ निकाल दिया … वहाँ नहीं रह गया है अनुप्रयोग पूल पहचान खाते के लिए कोई भी स्पष्ट अनुमति सभी में. वेब सेवा बस ठीक काम करने के लिए जारी रखा.

हम चले गए और सर्वर रीबूट. सब कुछ ठीक काम करना जारी रखा.

तो, संक्षिप्त करने के लिए: हम अनुप्रयोग पूल पहचान पूर्ण पहुँच दे दी और फिर इसे दूर ले गया. वेब सेवा कार्य करना शुरू कर दिया और कभी काम बंद कर दिया. विचित्र.

अगर किसी को पता है क्यों कि काम किया जाना चाहिए, कृपया एक टिप्पणी छोड़ दो.

</अंत>

Technorati टैग:

11 पर विचार "समाधान: पर System.IO.FileNotFoundException “SPSite नए SPSite =(यूआरएल)”

  1. Wilson Edgar

    नमस्ते, मैं भी यही समस्या थी. Sharepoint सर्वर के साथ एक ही मशीन पर विकसित करते हुए, मैं निश्चित रूप से नहीं sharepoint के रूप में एक ही पहचान के अंतर्गत नहीं चल रही अलग अनुमति के साथ Asp विकास सर्वर का उपयोग कर गया था (यह यहाँ के बारे में अधिक: http://msdn.microsoft.com/en-us/library/58wxa9w5(VS.80).aspx) तो क्या, मैं आईआईएस में एक नई साइट बनाते है (पोर्ट 8080) sharepoint के रूप में एक ही पहचान के साथ।. और voila.
    आशा है कि इस मदद करता है

  2. Zac Boyles
    वहाँ एक अच्छा मौका है कि आप कर रहे थे एक बार यह भाग गया था मुद्दा SQL के securityadmin सर्वर भूमिका तय है. होगा कि यह काम करने के लिए जारी रखने के लिए एक अच्छा विवरण.
  3. परीलोक

    अच्छी writeup. हम बिल्कुल एक ही मुद्दा सही अब कर रहे हैं. इस तरह की समस्या और अप्रत्याशित/अस्पष्टीकृत व्यवहार है क्यों बिल्कुल SharePoint के साथ काम कर रहे डेवलपर्स के एक बहुत कुछ बर्दाश्त नहीं कर सकता!

  4. Markus

    लेख का यह हिस्सा….”अनुप्रयोग पूल पहचान खाता पूर्ण पहुँच दी SQL करने के लिए”, आप विस्तृत कर सकते हैं? “अनुप्रयोग पूल पहचान” मुझे आशा है app पूल sharepoint साइट का मतलब है, लेकिन “SQL के लिए पूर्ण पहुँच”, आप कि कैसे दे? मुझे लगता है कि अनुप्रयोग पूल पहचान के लिए db सर्वर पर कोई लॉगिन बनाने काफी पर्याप्त नहीं है…तो यह sharepoint सामग्री db जहां नए लॉगिन dbo हो जाता है पर है (?) पहुँच? या अन्य sharepoint db के रूप में अच्छी तरह से, config db की तरह? कि मुश्किल है मेरे लिए, क्योंकि मेरी सपा सामग्री db जाहिरा तौर पर sql सर्वर आवृत्ति से संभाला नहीं है, जाहिरा तौर पर यह के अंतर्गत है “/Microsoft Office Servers/14.0/Data”, वैसे भी मैं इसे देख नहीं sql सर्वर में एमजीआर….किसी भी विचारों मैं कैसे दे “SQL के लिए पूर्ण पहुँच” इस मामले में? किसी भी उत्तर सराहना की जाएगी…मैं दयालु हूँ एक spsite ऑब्जेक्ट बनाएँ करने के लिए मेरे कंसोल app हो रही अटक!!

करने के लिए एक उत्तर दें छोड़ दो बेंजामिन उत्तर रद्द करे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. अपेक्षित स्थानों को रेखांकित कर दिया गया है *