Roztok: System.io.FileNotFoundException na “SPSite = nová SPSite(adresa URL)”

AKTUALIZÁCIA: Som vyslaný túto otázku MSDN tu. (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) a Michael Washam Microsoft odpovedal stručnú odpoveď.

Som vytvoril webovú službu konať ako BDC-priateľské fasády do zoznamu lokality SharePoint. Keď som použil z môjho vývojové prostredie, fungovalo to dobre. Keď som sa sťahoval to na nový server, Som narazil na túto chybu:

System.IO.FileNotFoundException: Webová aplikácia na http://localhost/sandbox sa nenašiel. Skontrolujte, či ste zadali URL správne. Ak adresa URL poskytovať existujúci obsah, správca systému možno musieť pridať nové priradenie adresy URL požiadavky k danej aplikácii. v Microsoft.SharePoint.SPSite...ctor(Farmy SPFarm, URI requestUri, Logickú contextSite, SPUserToken userToken) v Microsoft.SharePoint.SPSite...ctor(Reťazec requestUrl) v Conchango.xyzzy.GetExistingDocument(Reťazec minId, Reťazec maxId, Reťazec titleFilter) c:\Dokumenty a SettingsPaulMy DocumentsVisual štúdio 2005ProjectsxyzzyBDC_DocReviewBDC_DocReviewDocReviewFacade.asmx.cs:riadok 69

Tu je riadok 69:

pomocou (SPSite stránky = nové SPSite("http://localhost/sandbox"))

Skúšal som rôzne variácie na URL, vrátane použitia skutočný názov servera, svoju IP adresu, lomítka na URL, atď. Vždy som dostal túto chybu.

Použil som Google do výskumu. Veľa ľudí čelia tomuto problému, alebo varianty, ale nikto sa zdalo, že to vyriešil.

Hravé mech poskytuje podrobné chyba, že nenapadlo mi skontrolovať 12 úľ denníky. Nakoniec, o 24 hodín po môj kolega odporúča sa urobiť, tak, Overil som si 12 úľ denníka a našiel toto:

Pri pokuse získať miestnej farme sa vyskytla výnimka:
System.Security.SecurityException: Požadované prístup k registru nie je povolený.
v System.ThrowHelper.ThrowSecurityException(ExceptionResource prostriedok) v Microsoft.Win32.RegistryKey.OpenSubKey(Názov reťazca, Boolovská hodnota zapisovateľný) v Microsoft.Win32.RegistryKey.OpenSubKey(Názov reťazca) v Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_RegistryConnectionString() v Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_Local() v Microsoft.SharePoint.Administration.SPFarm.FindLocal(Farmu SP& farma, Boolovská hodnota& isJoined)
Zóna zhromaždenia, ktoré sa nepodarilo bola:  MyComputer

Tým sa otvorili nové možnosti výskumu, tak to bolo späť na Google. To ma viedlo k tomuto príspevky vo fóre: http://forums.codecharge.com/posts.php?post_id = 67135. Že ani naozaj pomôcť me ale sa na začiatku, čo ma premýšľať, nebolo databázy alebo bezpečnostný problém. Na soldiered a Andrew Connell príspevok konečne naštartoval myslel, že som mali uistiť, že účet identita fondu aplikácií mal primeraný prístup k databáze. Myslel som, že to už urobil. Avšak, môj kolega išiel a dal app bazén identitu účet plný prístup k SQL.

Akonáhle urobila zmenu, všetko, čo začal pracovať.

Čo sa stalo potom je najlepšie vyjadrené ako Haiku báseň:

Problémy zvýšiť svoje ruky.
Swing a chýbať. skús znova.
Úspech! Ale ako? prečo?

Ona nechcela nechať veci takhle, radšej dať minimálne požadované povolenie (a pravdepodobne vzhľadom na písanie záznamu blogu; Porazil ju na punč, muhahahahaha!).

Ona odstránené po sebe idúce povolenia z app identitu účet fondu až do … tam bol už nie akéhokoľvek výslovného povolenia pre konto identitu fondu aplikácií vôbec. Webová služba aj naďalej fungovať v pohode.

Sme šli a restartoval servery. Všetko, čo naďalej funguje.

Takže, pre pripomenutie: dal app bazén identitu úplný prístup a potom vzal preč. Webovú službu začal pracovať a nikdy prestalo pracovať. Bizarné.

Ak niekto vie, prečo že by pracovali, Prosím, zanechajte komentár.

</koniec>

Technorati Tags:

11 myšlienky na "Roztok: System.io.FileNotFoundException na “SPSite = nová SPSite(adresa URL)”

  1. Fernando Gómez Flores

    Pekné miesto, vďaka. V mojom prípade, môj problém bol vyriešený zmenou webservice apppool aby zodpovedala kolekciu lokality sharepoint.

    Na zdravie,
    Fernando A. Gómez F.

    Odpoveď
  2. Wilson Edgar

    ahoj, Tiež mal rovnaký problém. Pri súčasnom rozvoji na tom istom počítači s programom sharepoint server, Bol pomocou Asp vývojový Server s rôznymi povolenie nie určite nie beží pod rovnakou identitou lokality sharepoint (viac o tomto tu.: http://msdn.microsoft.com/en-us/library/58wxa9w5(VS.80).aspx) no a čo, Som vytvorenie novej lokality v službe IIS (prístav 8080) s rovnakou identitou lokality sharepoint.. a voila.
    Dúfam, že to pomôže

    Odpoveď
  3. Zac Boyles
    Tam je dobrá šanca, že Rola servera SQL pre securityadmin opravený problém ste boli raz to bol bežal. To by bolo dobré vysvetlenie pre to pokračovať v práci.
    Odpoveď
  4. Rozprávková krajina

    Nice písať. Sme teraz s presne rovnaký problém. Tento druh problému a nečakané/nevysvetliteľné správanie je presne dôvod, prečo mnoho vývojárov nemôže vystáť pracovať so službou SharePoint!

    Odpoveď
  5. Markus

    Táto časť článku….”dal app bazén identitu plný prístup k účtu pre SQL”, Môžete vypracovať? “identita fondu aplikácií” Predpokladám, že znamená fondu aplikácií na lokalite sharepoint, ale “plný prístup k SQL”, ako sa vám dať? Prihlásiť sa na server db pre totožnosť fondu aplikácií myslím, že nie je dosť…Takže je to na obsah sharepoint db kde nových prihlásenie dostane dbo (?) prístup? Alebo iné sharepoint db aj, ako config db? Pre mňa to je ťažké, pretože môj sp obsahu db nie je vraj ovládal inštancia servera sql, zrejme je to pod “/Microsoft Office Servers/14.0/Data”, Každopádne nevidím to v sql serveri mgr….nejaké nápady, ako môžem dať “plný prístup k SQL” v tomto prípade? Akékoľvek odpovede by ocenili…som typ prilepené dostať mojej konzole app vytvoriť objekt procedúry spsite!!

    Odpoveď

Zanechajte odpovedať na Benjamin zrušiť odpoveď

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *