Oplossing: System.io.FileNotFoundException op “SPSite = nieuwe SPSite(URL)”

UPDATE: Ik gepost hier deze vraag op MSDN (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) en Michael Washam van Microsoft reageerde met een beknopte antwoord.

Ik heb gemaakt een webservice om op te treden als een BDC-vriendelijke gevel naar een SharePoint-lijst. Wanneer mij tweedehands zulks van mijn ontwikkelomgeving, het werkte boete. Wanneer ik dit gemigreerd naar een nieuwe server, Ik ondervonden deze fout:

System.io.FileNotFoundException: De webtoepassing op http://localhost/sandbox kon niet worden gevonden. Controleer of u de URL juist hebt getypt. Als de URL bestaande inhoud dienen moet, de systeembeheerder kan moet een nieuwe aanvraag URL-toewijzing toevoegen aan de beoogde toepassing. op Microsoft.SharePoint.SPSite...ctor(SPFarm boerderij, URI requestUri, Booleaanse contextSite, SPUserToken userToken) op Microsoft.SharePoint.SPSite...ctor(String requestUrl) op Conchango.xyzzy.GetExistingDocument(String minId, Tekenreeks maxId, String titleFilter) in c:\Documenten en SettingsPaulMy DocumentsVisual Studio 2005ProjectsxyzzyBDC_DocReviewBDC_DocReviewDocReviewFacade.asmx.cs:lijn 69

Hier is lijn 69:

met behulp van (SPSite site = nieuwe SPSite("http://localhost/sandbox"))

Ik heb geprobeerd verschillende variaties op de URL, inclusief het gebruik van de echte naam van de server, het IP-adres, afsluitende schuine strepen op de URL, etc. Ik got altijd welk vergissing.

Ik gebruikte De Google het onderzoek. Veel mensen worden geconfronteerd met deze kwestie, of variaties van het, maar niemand leek te hebben het opgelost.

Tricksy MOSS verstrekt een gedetailleerde fout die het deed zich niet voor mij om te controleren de 12 korf logboeken. Uiteindelijk, over 24 uur na mijn collega aanbevolen dat ik doen, Ik controleerde de 12 component log en vond dit:

Een uitzondering is opgetreden terwijl het proberen te verwerven van de lokale farm:
System.Security.SecurityException: Toegang tot het gevraagde register is niet toegestaan.
op System.ThrowHelper.ThrowSecurityException(ExceptionResource resource) op Microsoft.Win32.RegistryKey.OpenSubKey(Naam, Boolean beschrijfbare) op Microsoft.Win32.RegistryKey.OpenSubKey(Naam) op Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_RegistryConnectionString() op Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_Local() op Microsoft.SharePoint.Administration.SPFarm.FindLocal(SPFarm& boerderij, Boolean& isJoined)
De Zone van de vergadering die niet was:  MyComputer

Dit opende nieuwe mogelijkheden van het onderzoek, dus was het terug naar de Google. Dat leidde me naar dit forumpost: http://forums.CodeCharge.com/Posts.php?post_id = 67135. Die niet echt helpen me maar het beginnen met het maken me denken was er een database en/of security probleem. Ik was op en Andrew Connell van post ten slotte leverde de gedachte dat ik ervoor moet zorgen dat de account van de identiteit van de groep van toepassingen had passende toegang tot de database. Ik dacht dat het al gedaan. Echter, mijn collega ging en gaf de app zwembad identiteit account volledige toegang tot SQL.

Zodra ze dat wijziging aangebracht, Alles begon te werken.

Wat nu is gebeurd is het beste uitgedrukt als een Haiku gedicht:

Problemen hun handen te verhogen.
U swing en missen. &Opnieuw.
Succes! Maar hoe? Waarom?

She didn't want to dingen laat als dat, de voorkeur aan geven de minimaal vereiste machtiging (en waarschijnlijk met het oog op het schrijven van een blog entry; Ik sloeg haar aan de punch, muhahahahaha!).

Ze verwijderd opeenvolgende machtigingen uit de app zwembad identiteit account tot … Er was niet langer een uitdrukkelijke toestemming voor de app account voor de identiteit van de groep op alle. De webservice blijven werken prima.

We gingen en opnieuw opstarten van de servers. Alles bleef om boete te werken.

Dus, om herhaling: Wij gaven de app identiteit volledige toegang tot het zwembad en vervolgens wegnam. De webservice begonnen en nooit gestopt met werken. Bizarre.

Als iemand weet waarom die moet hebben gewerkt, laat alstublieft een reactie.

</einde>

11 gedachten over "Oplossing: System.io.FileNotFoundException op “SPSite = nieuwe SPSite(URL)”

  1. Fernando Gómez Flores

    Nice post, Bedankt. In mijn geval, mijn probleem werd opgelost door de webservice apppool zodat deze overeenkomen met die van de sharepoint-siteverzameling wijzigen.

    Cheers,
    Fernando A. Gómez F.

    Antwoord
  2. Wilson Edgar

    Hallo, Ik had ook het zelfde probleem. Hoewel de ontwikkeling op de zelfde machine met sharepoint server, Ik was met behulp van Asp Development Server met verschillende toestemming niet zeker niet uitgevoerd onder dezelfde identiteit als sharepoint (meer over dit hier: http://msdn.microsoft.com/en-us/library/58wxa9w5(VS.80).aspx) En dus, Ik heb een nieuwe site maken in IIS (poort 8080) met dezelfde identiteit als sharepoint.. en voila.
    Hoop dat die dit helpt

    Antwoord
  3. Zac Boyles
    Er is een goede kans dat de SQL securityadmin serverfunctie vaste naar de uitvaardiging die u hadden zodra het was liep. Dat zou een goede verklaring voor het blijven werken.
    Antwoord
  4. Faery

    Nice writeup. We hebben precies hetzelfde probleem nu. Dit soort probleem en onverwachte/onverklaarbaar gedrag is precies de reden waarom veel ontwikkelaars niet uitstaan werken met SharePoint!

    Antwoord
  5. Markus

    Dit deel van het artikel….”de app zwembad identiteit account volledige toegang gaf tot SQL”, u kunt ingaan? “de identiteit van de groep van de app” Ik veronderstel dat betekent dat de groep van toepassingen van de sharepoint-site, maar “volledige toegang tot SQL”, Hoe geef je dat? Maken van een aanmelding op de server van de db voor de identiteit van groep van app ik denk dat is niet genoeg…zo is het op de sharepoint-inhoud db waar de nieuwe login dbo krijgt (?) toegang? Of andere sharepoint db's alsmede, zoals de config-db? Voor mij is dat is taai, omdat mijn sp inhoud db blijkbaar is niet door sql server-exemplaar verwerkt, Blijkbaar is het onder “/Microsoft Office Servers/14.0/Data”, Hoe dan ook zie ik het niet in sql server mgr….enig idee hoe ik geven “volledige toegang tot SQL” in dit geval? Een antwoord zou worden gewaardeerd…Ik ben soort mijn console app om een spsite-object te maken krijgen geplakt!!

    Antwoord

Verlaat een antwoord te Benjamin annuleer antwoord

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *