解決方案: 對 System.IO.FileNotFoundException “中的 SPSite = 新中的 SPSite(url)”

更新: 我發佈這一問題到 MSDN 在這裡 (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) Michael Washam 的微軟用一個簡明的答案進行了回擊.

創建 web 服務,以作為 BDC 友好門面 到 SharePoint 清單. 當我用這個從我的開發環境, 它能正常工作. 當我這遷移到新的伺服器, 此錯誤:

System.IO.FileNotFoundException: 在 Web 應用程式 http://localhost/sandbox 無法找到. 驗證正確地鍵入 URL. 如果 URL 應該提供的現有內容, 系統管理員可能需要添加一個新的請求的 URL 對應到目標應用程式. 在 Microsoft.SharePoint.SPSite...建構函式(SPFarm 農場, Uri requestUri, 布林 coNtextSite, SPUserToken userToken) 在 Microsoft.SharePoint.SPSite...建構函式(字串 requestUrl) 在 Conchango.xyzzy.GetExistingDocument(字串 minId, 字串 maxId, 字串 titleFilter) C:\文檔和 SettingsPaulMy DocumentsVisual 工作室 2005ProjectsxyzzyBDC_DocReviewBDC_DocReviewDocReviewFacade.asmx.cs:線 69

這裡是線 69:

使用 (SPSite 網站 = 新 SPSite("http://localhost/sandbox"))

我試著 URL 不同變奏曲, 包括使用伺服器的真實姓名, 它的 IP 位址, 該 url 的斜線結尾, 等. 我總是得到該錯誤.

我用 在谷歌 它的研究. 很多人面臨著這個問題, 或它的變化, 但似乎沒有人出錢解決.

Tricksy MOSS 提供詳細它並沒有給我檢查發生的錯誤 12 蜂巢日誌. 最終, 關於 24 小時後 我的同事 推薦我這樣做,, 簽出狀態 12 配置單元日誌,發現這:

嘗試獲取本地農場時出現異常:
System.Security.SecurityException: 不允許進行請求的註冊表訪問.
在 System.ThrowHelper.ThrowSecurityException(ExceptionResource 資源) 在 Microsoft.Win32.RegistryKey.OpenSubKey(字串名稱, 布林值可寫) 在 Microsoft.Win32.RegistryKey.OpenSubKey(字串名稱) 在 Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_RegistryConnectionString() 在 Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_Local() 在 Microsoft.SharePoint.Administration.SPFarm.FindLocal(SPFarm& 農場, 布林值& 種矛盾又摻雜)
失敗的程式集的區域是:  我的電腦

這開闢了新途徑的研究, 所以它又回到了谷歌. 我被引到這 論壇帖子: http://forums.codecharge.com/posts.php?post_id = 67135. 這真的幫不了我,但它確實開始讓我覺得那裡是一個資料庫和/或安全的問題. 我受盡折磨和 安德魯 · 康奈爾 最後觸發後說我要確保應用程式池標識帳戶有權訪問資料庫的思想. 我以為它已經打了. 不過, 我的同事去和給 SQL 應用程式池標識帳戶完全訪問.

為她做了這種變化, 一切都開始工作.

下面發生的事情是最好的表示為 俳句 詩:

問題舉手.
你擺動和小姐. 再試一次.
成功! 但如何? 為什麼?

她並不想這樣獨自一人離開的事情, 更傾向于給最低所需的許可權 (可能著眼寫博客條目; 毒打沖到, muhahahahaha!).

她從應用程式池標識帳戶之前刪除連續的許可權 … 已不再有任何明確權限的應用程式池標識帳戶在所有. Web 服務繼續工作得很好.

我們去和重新開機伺服器. 一切繼續做工精細.

所以, 重述一遍: 我們給應用程式池標識完全存取權限,然後把它拿走了. Web 服務開始工作,永遠不會停止工作. 奇怪.

如果有人知道為什麼應該會起作用, 請留下評論.

</結束>

Technorati 標籤:

11 上“的想法解決方案: 對 System.IO.FileNotFoundException “中的 SPSite = 新中的 SPSite(url)”

  1. 費爾南多 · 戈麥斯 · 弗洛雷斯

    好帖子, 謝謝. 以我為例, 我的問題被解決通過更改 web 服務的 apppool,以匹配的 sharepoint 網站集合.

    歡呼,
    費爾南多 · A. 戈麥斯 F.

    答覆
  2. 愛德格 · 威爾遜

    你好, 我也有同樣的問題. 在發展與 sharepoint 伺服器在同一機器上的同時, 使用不同的許可權不肯定不下運行相同的標識作為 sharepoint 的 Asp 開發伺服器 (更多關於此這裡: http://msdn.microsoft.com/en-us/library/58wxa9w5(VS.80).aspx) 那又怎樣, 我已經在 IIS 中創建一個新的網站 (埠 8080) 具有作為 sharepoint 相同的標識。. 哇塞.
    希望這會有助於

    答覆
  3. Zac Boyles
    有很好的機會,SQL 的 securityadmin 伺服器角色修正你有一旦它被撞的問題. 這將是一個好的解釋,它繼續工作.
    答覆
  4. 仙女

    好交上來. 我們現在有完全相同的問題. 這種問題和不明原因的意外/行為是為什麼很多開發商不能忍受與 SharePoint 工作!

    答覆
  5. 馬庫斯 ·

    文章的這部分….”給 SQL 的應用程式池標識帳戶的完全訪問”, 你能詳細嗎? “應用程式池標識” 我猜就意味著該 sharepoint 網站的應用程式池, 但 “對 SQL 的完全存取權限”, 你如何給那? 在我的應用程式池標識 db 伺服器上創建登錄不過癮…那麼,在那裡新登錄獲取 dbo sharepoint 內容資料庫上 (?) 訪問? 或其他 sharepoint db 的一樣好, 像配置 db? 對我來說那很難, 因為我 sp 內容 db 顯然並不由 sql server 實例處理, 顯然,這是在下 “/Microsoft Office Servers/14.0/Data”, 反正覺得在 sql 伺服器經理….如何讓任何想法 “對 SQL 的完全存取權限” 在這種情況下? 任何答覆,不勝感激…我是困得我的主控台應用程式來創建 spsite 物件!!

    答覆

離開一個答覆 保羅 · 高爾文 取消回复

您的電子郵件地址不會被公開. 必需的地方已做標記 *