Zgjidhje: System.IO.FileNotFoundException në “SPSite = new SPSite(url)”

UPDATE: I postuar këtë pyetje për MSDN këtu (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) and Michael Washam of Microsoft responded with a concise answer.

Unë të krijova një shërbim web për të vepruar si një QZHB-miqësore fasada to a SharePoint list. When I used this from my development environment, ai ka punuar mirë. Kur kam emigruar këtë në një server të ri, Kam hasur këtë gabim:

System.IO.FileNotFoundException: Web aplikacion në http://localhost/sandbox nuk mund të gjendet. Verifikoni se keni shtypur URL saktë. Nëse URL duhet të shërbejnë përmbajtjen e ekzistuese, administratori i sistemit mund të kenë nevojë të shtoni një të re URL hartë kërkesë të aplikimit të destinuara. në Microsoft.SharePoint.SPSite .. ctor(SPFarm fermë, Uri requestUri, Boolean contextSite, SPUserToken userToken) në Microsoft.SharePoint.SPSite .. ctor(String requestUrl) në Conchango.xyzzy.GetExistingDocument(String minId, String maxId, String titleFilter) në C:\Dokumente dhe Settings Paul My Documents Visual Studio 2005 Projects xyzzy BDC_DocReview BDC_DocReview DocReviewFacade.asmx.cs:linjë 69

Këtu është linjë 69:

përdorim (Faqe SPSite = new SPSite("http://localhost/sandbox"))

Unë u përpoq variacione të ndryshme në URL, duke përfshirë përdorimin e emrin e vërtetë e serverit, IP adresa e saj, zvarritës ul mbi URL, etj. I always got that error.

I përdorur Google to research it. Lots of people face this issue, ose variacione të saj, por askush nuk duket se e kanë atë zgjidhur.

Kapriçioz MOSS siguruar një gabim të tillë të detajuar se kjo nuk ka ndodhur për mua për të kontrolluar 12 hive logs. Eventually, për 24 orë pas Kolegu im rekomandoi të bëj kështu, I kontrolluar nga 12 log zgjua dhe e gjeti këtë:

Një përjashtim ndodhi ndërsa duke u përpjekur për të blerë fermë lokale:
System.Security.SecurityException: Qasje kërkuar regjistrit nuk është e lejuar.
në System.ThrowHelper.ThrowSecurityException(ExceptionResource burimeve) në
(Emri String, Shkruajtshme Boolean) në
(Emri String) në
() në
() në
(SPFarm& fermë, Boolean& isJoined)
Zona e kishës që ishte e dështuar:  MyComputer

Kjo hapi shtigje të reja të hulumtimit, kështu që ishte kthyer në Google. Kjo çoi mua në këtë Post Forum: http://forums.codecharge.com / posts.php?post_id = 67135. That didn’t really help me but it did start making me think there was a database and/or security issue. I soldiered on and Andrew Connell post finally triggered the thought that I should make sure that the application pool’s identity account had appropriate access to the database. I thought it already did. Megjithatë, Kolegu im shkoi dhe i dha pishinë app identitetit qasje të plotë të llogarisë në SQL.

Sapo ajo e bëri këtë ndryshim, everything started working.

Çfarë ndodhi më tej është shprehur më së miri si një haiku poemë:

Problemet ngrenë duart e tyre.
You swing and miss. Try again.
Sukses! But how? Përse?

Ajo nuk duan të lënë gjërat vetëm si kjo, preferuar të japë leje minimal të kërkuar (dhe ndoshta me një sy në shkrim një blog entry; I rrihte me grusht, muhahahahaha!).

Ajo hequr lejet e njëpasnjëshme nga llogaria pishinë app identitetit deri … there was no longer any explicit permission for the app pool identity account at all. The web service continued to work just fine.

We went and rebooted the servers. Everything continued to work fine.

Kështu, për radhitje: we gave the app pool identity full access and then took it away. The web service started working and never stopped working. Bizarre.

Nëse dikush e di se pse duhet të ketë punuar, ju lutemi të lënë një koment.

</fund>

Technorati Tags:

11 mendime mbi "Zgjidhje: System.IO.FileNotFoundException në “SPSite = new SPSite(url)”

  1. Pallto për burrë

    dendi , i love u , u bërë ditën time , Unë kam qenë duke punuar në atë për pothuajse një ditë , dhe u shpëtoi vetëm kohën time

  2. Fernando Flores Gómez

    Nice post, falënderim. Në rastin tim, problemi im u zgjidh duke ndryshuar apppool e webservice për ndeshjen që e mbledhjes SharePoint site.

    Gëzuar,
    Fernando Një. Gómez F.

  3. Wilson Edgar

    Hi, Unë gjithashtu kishte të njëjtin problem. Ndërkohë zhvillimin në të njëjtën makinë me SharePoint Server, Unë isha duke përdorur Server Asp Zhvillimit me lejen e ndryshme nuk sigurisht nuk kandidon nën identitetin njëjtë si SharePoint (më shumë në lidhje me këtë këtu: http://msdn.microsoft.com/en-us/library/58wxa9w5(VS.80).aspx) kështu që çfarë, Unë kam krijuar një faqe të re në IIS (port 8080) me identitet të njëjtë si për.. dhe voila.
    Hope this helps

  4. Zac Boyles
    Nuk është një shans i mirë që SQL Server-së securityadmin roli fikse çështjen që ju ishin të paturit e një herë ajo u vrapoi. Kjo do të jetë një shpjegim i mirë për të vazhduar të punojë.
  5. Faery

    Nice writeup. We are having exactly the same issue right now. This kind of problem and unexpected/unexplained behaviour is exactly why a lot of developers cannot stand working with SharePoint!

  6. Markus

    This part of the article….”gave the app pool identity account full access to SQL”, can you elaborate? “app pool identity” i presume means the app pool of the sharepoint site, por “full access to SQL”, how do you give that? Creating a login on the db server for the app pool identity i think isn’t quite enough…so is it on the sharepoint content db where the new login gets dbo (?) access? Or other sharepoint db’s as well, like the config db? For me that’s tough, because my sp content db apparently isn’t handled by sql server instance, apparently it’s under “/Microsoft Office Servers/14.0/Data”, anyway i don’t see it in sql server mgr….any ideas how i give “full access to SQL” në këtë rast? Any reply would be appreciated…i’m kind stuck getting my console app to create an spsite object!!

Lini një Përgjigju

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar *