Løsning: System.IO.FileNotFoundException på “SPSite = nye SPSite(URL-adresse)”

OPDATERING: Jeg bogført dette spørgsmål til MSDN her (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) og Michael Washam af Microsoft reagerede med et kortfattet svar.

Jeg oprettede en webtjeneste til at fungere som en BDC-venlige facade til en SharePoint-liste. Når jeg brugte dette fra min udviklingsmiljø, Det fungerede fint. Når jeg overflyttet dette til en ny server, Jeg fandt denne fejl:

System.IO.FileNotFoundException: Webprogrammet på http://localhost/sandbox der blev ikke fundet. Kontroller, at du har indtastet URL-adressen korrekt. Hvis URL-adressen skal være tjener eksisterende indhold, systemadministratoren kan være nødvendigt at tilføje en ny anmodning URL-tilknytning til den tilsigtede anvendelse. på Microsoft.SharePoint.SPSite...ctor(SPFarm farm, URI requestUri, Boolean contextSite, SPUserToken userToken) på Microsoft.SharePoint.SPSite...ctor(Strengen requestUrl) på Conchango.xyzzy.GetExistingDocument(Strengen minId, Strengen maxId, Strengen titleFilter) i C:\Dokumenter og SettingsPaulMy DocumentsVisual Studio 2005ProjectsxyzzyBDC_DocReviewBDC_DocReviewDocReviewFacade.asmx.cs:linje 69

Her er linjen 69:

ved hjælp af (SPSite site = ny SPSite("http://localhost/sandbox"))

Jeg prøvet forskellige variationer på URL-adressen, herunder ved hjælp af serverens rigtige navn, dens IP-adresse, efterstillet skråstreg på URL-adressen, osv. Jeg fik altid at fejl.

Jeg brugte Google til forskning det. Masser af mennesker står over for problemet, eller variationer af det, men syntes ingen at have det løst.

Tricksy MOSS forudsat en detaljeret fejl, at det ikke faldt til mig at kontrollere den 12 hive logs. Til sidst, om 24 timer efter min kollega anbefalede jeg gøre det., Jeg tjekkede ud den 12 hive log og fandt denne:

Der opstod en undtagelse under forsøget på at erhverve den lokale farm:
System.Security.SecurityException: Anmodede indskrive adgang er ikke tilladt.
på System.ThrowHelper.ThrowSecurityException(ExceptionResource ressourcer) på Microsoft.Win32.RegistryKey.OpenSubKey(String navn, Boolesk skrivbar) på Microsoft.Win32.RegistryKey.OpenSubKey(String navn) på Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_RegistryConnectionString() på Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_Local() på Microsoft.SharePoint.Administration.SPFarm.FindLocal(SPFarm& Farm, Boolesk værdi& isJoined)
Zonen for den forsamling, der ikke var:  MyComputer

Det åbnede op for nye muligheder for forskning, så det var tilbage til Google. Det førte mig til dette forumindlæg: http://forums.CodeCharge.com/posts.php?post_id = 67135. Der ikke virkelig hjælpe mig, men det begynde at gøre mig tror, der var et problem med databasen og/eller sikkerhed. Jeg fortsatte og Andrew Connell bogføre endelig udløst den tanke, at jeg skal sørge for at programgruppens identitet konto havde passende adgang til databasen. Jeg troede det allerede gjorde. Dog, min kollega gik og gav app pool identitet konto fuld adgang til SQL.

Så snart hun har foretaget denne ændring, alt begyndte at arbejde.

Hvad der skete næste er bedst udtrykt i en Haiku digt:

Problemer hæve deres hænder.
Du swing og miss. Prøv igen.
Succes! Men hvordan? Hvorfor?

Hun ønskede ikke at lade tingene alene, men foretrækker at give den mindste nødvendige tilladelse (og formentlig med henblik på at skrive en blog post; Jeg fik hende til punch, muhahahahaha!).

Hun fjernede successive tilladelser fra app programgruppens identitet konto indtil … der var ikke længere nogen udtrykkelig tilladelse til app programgruppens identitet konto på alle. Webtjenesten fortsatte med at fungere fint.

Vi gik og genstartet serverne. Alt fortsatte med at fungere fint.

Så, at opsummere: Vi gav den app pool identity fuld adgang og derefter tog det væk. Webtjenesten begyndte at arbejde og aldrig standsede i orden. Bizarre.

Hvis nogen ved, hvorfor der bør har arbejdet, venligst efterlade en kommentar.

</slutningen>

Technorati Tags:

11 tanker om ”Løsning: System.IO.FileNotFoundException på “SPSite = nye SPSite(URL-adresse)”

  1. Fernando Gómez Flores

    Nice post, Tak. I mit tilfælde, mit problem blev løst ved at ændre den webservice apppool for at matche, at af sharepoint-websteder.

    Hej,
    Fernando A. Gómez F.

    Svar
  2. Wilson Edgar

    Hej, Jeg havde også det samme problem. Samtidig udvikle på den samme maskine med sharepoint server, Jeg var ved hjælp af Asp udviklingsserver med forskellige tilladelse ikke bestemt ikke kører under det samme identitet som sharepoint (mere om dette her: http://msdn.microsoft.com/en-us/library/58wxa9w5(VS.80).aspx) Hvad så, Jeg har oprette et nyt websted i IIS (port 8080) med det samme identitet som sharepoint.. og voila.
    Håb dette hjælper

    Svar
  3. Zac Boyles
    Der er en god chance for, at SQL'S securityadmin serverrolle nagelfast den oplag, du var der, når det var løb. Det ville være en god forklaring på det fortsætter med at arbejde.
    Svar
  4. Faery

    Nice writeup. Vi har præcis den samme oplag lige nu. Denne form for problem og uventede/uforklarlige adfærd er præcis grunden til, at en masse udviklere ikke kan fordrage arbejder med SharePoint!

    Svar
  5. Markus

    Denne del af artiklen….”gav app pool identitet konto fuld adgang til SQL”, Du kan uddybe? “App programgruppens identitet” Jeg formoder, betyder app pulje af sharepoint-webstedet, Men “fuld adgang til SQL”, Hvordan giver du der? Oprettelse af logon på db-serveren for app programgruppens identitet jeg tror ikke helt nok…så er det på den sharepoint indhold db hvor den nye login får dbo (?) adgang? Eller andre sharepoint db's samt, ligesom config db? For mig, der er hårdt, fordi min sp indhold db tilsyneladende ikke er håndteret af sql server-forekomsten, tilsyneladende er det under “/Microsoft Office Servers/14.0/Data”, Anyway se jeg ikke det i sql server mgr….nogen ideer hvordan jeg give “fuld adgang til SQL” i dette tilfælde? Enhver svar ville være værdsat…Jeg slags fast at få min konsol app til at oprette et spsite-objekt!!

    Svar
    1. Paul Galvin Indlæg forfatter

      Bedrøvelig nemlig aldrig op med at reagere. Jeg går ud fra du fik det hele til at arbejde. 🙂

      Svar

Efterlad et svar til Benjamin Annuller besvarelse

Din e-mail adresse vil ikke blive offentliggjort. Krævede felter er markeret *