Рашэнне: System.IO.FileNotFoundException на “SPSite = новы SPSite(URL-адрас)”

АБНАЎЛЕННЕ: Я адказваў на гэтае пытанне ў MSDN тут (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) and Michael Washam of Microsoft responded with a concise answer.

Я стварыў вэб-сэрвісу ў якасці BDC-дружалюбных фасад to a SharePoint list. When I used this from my development environment, усё працавала нармальна. Калі я гэта мігравалі на новы сервер, Я сутыкнуўся з гэтай памылкай:

System.IO.FileNotFoundException: Вэб-дадатак на http://localhost/sandbox не можа быць знойдзены. Пераканайцеся, што вы набралі адрас правільна. Калі URL павінны служыць існуючы кантэнт, Сістэмны адміністратар можа спатрэбіцца, каб дадаць новае адлюстраванне URL запыту да меркаванага прымяненню. у Microsoft.SharePoint.SPSite .. CTOR(SPFarm грузаў, Уры RequestUri, Булевы contextSite, SPUserToken UserToken) у Microsoft.SharePoint.SPSite .. CTOR(Радок requestUrl) у Conchango.xyzzy.GetExistingDocument(Радок minId, Радок maxId, Радок назвы фільтра) ў C:\Дакументы і Settings Павел Мае дакументы Visual Studio 2005 Projects XYZZY BDC_DocReview BDC_DocReview DocReviewFacade.asmx.cs:лінія 69

Вось лінія 69:

выкарыстанне (SPSite сайта = новы SPSite("http://localhost/sandbox"))

Я спрабаваў розныя варыяцыі на URL, у тым ліку з выкарыстаннем рэальнага імя сервера, яго IP адрас, слеш у канцы па спасылцы, і г.д.. I always got that error.

Я Google to research it. Lots of people face this issue, або змены яго, але ніхто, здавалася, ён вырашыў.

Tricksy MOSS ўмове, што такія падрабязныя звесткі пра памылку, што яна не прыходзіла мне ў галаву праверыць 12 hive logs. У канчатковым рахунку, аб 24 гадзін пасля мой калега рэкамендавалі мне зрабіць гэта, Я праверыў 12 вулей часопіс і знайшоў:

Выключэнне адбылося пры спробе набыць мясцовая гаспадарка:
System.Security.SecurityException: Запытаны доступ да рэестру не дапускаецца.
у System.ThrowHelper.ThrowSecurityException(ExceptionResource рэсурсаў) ў
(Радок назвы, Булевы запісу) ў
(Радок назвы) ў
() ў
() ў
(SPFarm& ферма, Лагічны& isJoined)
Зона зборкі, якія не былі:  MyComputer

Гэта адкрыла новыя магчымасці для даследавання, так што гэта было да Google. Гэта прывяло мяне да гэтага Форум паведамленне: 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. Аднак, мой калега пайшоў і даў асобу прыкладанне басейн кошт поўнага доступу да SQL.

Як толькі яна зрабіла, што змяненне, everything started working.

Што адбылося далей, лепш за ўсё выяўляецца ў выглядзе хайку верш:

Праблемы падняць рукі.
You swing and miss. Try again.
Поспех! But how? Чаму?

Яна не хацела, каб пакінуць усё як адзін, што, аддаючы перавагу, каб даць мінімальна неабходнага дазволу (і, магчыма, з прыцэлам на напісанне блога; Я забіў яе да ўдару, muhahahahaha!).

Яна зняла паслядоўных дазволу ад асобы ўліковага запісу пула прыкладанняў да … 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.

Так, рэзюмаваць: we gave the app pool identity full access and then took it away. The web service started working and never stopped working. Bizarre.

Калі хто ведае, чаму гэта павінна працавалі, калі ласка, пакіньце каментар.

</канец>

Technorati Тэгі:

11 думкі пра «Рашэнне: System.IO.FileNotFoundException на “SPSite = новы SPSite(URL-адрас)”

  1. Фернанда Гомес Флорэс

    Добрая пошта, дзякуй. У маім выпадку, Мая праблема была вырашана шляхам змены AppPool WebService на супадаць з сямействам сайтаў SharePoint.

    Ура,
    Фернанда. Гомес F.

  2. Эдгар Уілсан

    Прывітанне, Я таксама была такая ж праблема. Пры распрацоўцы на гэтай жа машыне з SharePoint Server, Я з дапамогай ASP сервера распрацоўкі з рознымі дазволу не, вядома, не пад тым жа асоба, як SharePoint (Падрабязней пра гэта тут: http://msdn.microsoft.com/en-us/library/58wxa9w5(VS.80).ASPX) ну і што, У мяне стварыць новы сайт у IIS (порт 8080) з той жа асобы, як SharePoint.. і завэлюмаванай.
    Спадзяюся, гэта дапаможа

  3. Зак Boyles
    Існуе добры шанец, што сервер SQL securityadmin ролю Выпраўленая памылка ў вас была калісьці было пабег. Гэта было б добрае тлумачэнне для яго працягваюць працаваць.
  4. 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, але “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” У гэтым выпадку? Any reply would be appreciated…i’m kind stuck getting my console app to create an spsite object!!

Пакінуць каментар да Веньямін адмяніць адказ

Ваш электронны адрас не будзе апублікаваны. Абавязковыя палі пазначаныя * *