Solusyon: System.IO.FileNotFoundException sa “SPSite = bagong SPSite(url)”

I-UPDATE: I-post ang tanong na ito sa MSDN dito (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) and Michael Washam of Microsoft responded with a concise answer.

Lumikha ako ng serbisyo sa web upang kumilos bilang isang BDC-friendly harapan to a SharePoint list. When I used this from my development environment, ito ay nagtrabaho fine. Kailan ko migrate na ito sa isang bagong server, Nakatagpo ako ng error na ito:

System.IO.FileNotFoundException: Ang mga Web application sa http://localhost/sandbox ay hindi mahanap. Pinapatunayan na ikaw ay tama ang URL. Kung ang URL ay dapat na naghahain ng umiiral na nilalaman, ang system administrator ay maaaring kailangan upang magdagdag ng bagong kahilingan URL pagmamapa sa nilalayon application. sa Microsoft.SharePoint.SPSite .. ctor(SPFarm bukid, Uri requestUri, Boolean contextSite, SPUserToken userToken) sa Microsoft.SharePoint.SPSite .. ctor(String requestUrl) sa Conchango.xyzzy.GetExistingDocument(String minId, String maxId, String pamagat filter) sa C:\Documents and Settings Paul My Documents Visual Studio 2005 Proyekto xyzzy BDC_DocReview BDC_DocReview DocReviewFacade.asmx.cs:linya 69

Narito ang linya 69:

paggamit (SPSite site = bagong SPSite("http://localhost/sandbox"))

Sinubukan kong iba't-ibang mga pagkakaiba-iba sa mga URL, kabilang ang paggamit ng tunay na pangalan ng server, nito IP address, trailing slashes sa URL, at iba pa. I always got that error.

Ginamit ko Ang Google to research it. Lots of people face this issue, o mga pagkakaiba-iba ng mga ito, ngunit walang isa tila na ito malulutas.

Makisig Moss ibinigay tulad ng isang detalyadong error na hindi ito mangyayari sa akin upang suriin ang 12 hive logs. Eventually, tungkol sa 24 oras matapos aking kasamahan Inirerekumenda gagawin ko kaya, I-check out ang 12 kaharian ng mga laywan log at natagpuan na ito:

Exception naganap na error habang sinusubukang upang makuha ang mga lokal na bukid:
System.Security.SecurityException: Hiniling na registry access ay hindi pinapayagan.
sa System.ThrowHelper.ThrowSecurityException(ExceptionResource mapagkukunan) sa
(String pangalan, Boolean writable) sa
(String pangalan) sa
() sa
() sa
(SPFarm& bukid, Boolean& isJoined)
Ang Zone ng assembly na nabigo noon ay:  MyComputer

Ito ay nagbukas ng mga bagong avenues ng pananaliksik, kaya ito ay bumalik sa Ang Google. Na humantong sa akin na ito forum post: http://forums.codecharge.com / posts.php?post_id = 67,135. 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 ni 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. Gayunman, aking kasamahan nagpunta at ibinigay ang app na pool pagkakakilanlan account ganap na access sa SQL.

Sa sandali na siya ay ginawa ang pagbabagong iyon, everything started working.

Ano ang nangyari susunod ay pinakamahusay na ipinahiwatig bilang isang hayku tula:

Problema sa itaas ang kanilang mga kamay.
You swing and miss. Try again.
Tagumpay! But how? Bakit?

Hindi niya ay nais na mag-iwan mga bagay tulad ng nag-iisa na, preferring upang bigyan ang minimum na kinakailangang pahintulot (at marahil ay may isang mata sa pagsusulat ng isang blog entry; Matalo ko siya sa mga pamutas, muhahahahaha!).

Inalis niya ang sunud-sunod na pahintulot mula sa app account pool pagkakakilanlan hanggang sa … 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.

Kaya, sa paglalagom: we gave the app pool identity full access and then took it away. The web service started working and never stopped working. Bizarre.

Kung sinuman ang nakakaalam kung bakit na dapat nakapagtrabaho, mangyaring mag-iwan ng komento.

</dulo>

Technorati Tags:

11 ano sa tingin mo "Solusyon: System.IO.FileNotFoundException sa “SPSite = bagong SPSite(url)”

  1. Benjamin

    taong masyadong maselan sa pananamit , Gustung-gusto i u , u ginawa ang aking araw , i ay nagtatrabaho sa mga ito para sa halos isang araw , at u lamang ang aking mga nai-save na oras

    Sumagot
  2. Fernando Gómez Flores

    Nice post, salamat. Sa aking kaso, ang aking problema ay malutas sa pamamagitan ng pagbabago ng apppool ang webservice upang tumugma na ng koleksyon sharepoint site.

    Tagay,
    Fernando. Gómez F.

    Sumagot
  3. Prakash Vedachalam

    i na ina-sinubukan para sa 4 oras. sa wakas ito ay tumutulong sa akin.. Salamat ng maraming Jeffrey Knight

    Sumagot
  4. Wilson Edgar

    Hi, Din ako ay nagkaroon ng parehong problema. Habang umuunlad sa parehong machine na may sharepoint server, Ako ay gumagamit ng ASP Development Server na may iba't ibang mga pahintulot ay hindi tiyak na hindi tumatakbo sa ilalim ng parehong pagkakakilanlan bilang sharepoint (higit pa tungkol sa ito dito: http://msdn.microsoft.com/en-us/library/58wxa9w5(VS.80).aspx) kaya kung ano, Nag ba akong lumikha ng isang bagong site sa IIS (port 8080) na may parehong bilang pagkakakilanlan sharepoint.. at veiled.
    Sana ito ay tumutulong sa

    Sumagot
  5. Zac Boyles
    May ay isang magandang pagkakataon na securityadmin server SQL papel ni naayos na ang isyu ikaw ay nagkakaproblema sa sandaling ito ay bumangga. Iyon ay magiging isang mahusay na paliwanag para sa mga ito sa patuloy na gumana.
    Sumagot
  6. 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!

    Sumagot
  7. 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, pero “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” sa kasong ito? Any reply would be appreciated…i’m kind stuck getting my console app to create an spsite object!!

    Sumagot

Mag-iwan ng Sumagot sa Benjamin Ikansela reply

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan *