最近很朋友都在問這個問題。
經過外部asp.net web 應用程序測試SharePoint 2010 的API比較便捷和快速,相信不少人都碰到這個問題。運行環境是Windows Server 2008 x64位+SP2補丁,SQL Server 2008 x64+SP2補丁,Visual Studio 2010 x86,SharePoint Designr 2010 x86。
編譯的時候會出現以下問題:
「找不到位於xxx的Web 應用程序。請確認正確鍵入了此 URL。若是此 URL 須要提供現有內容,則系統管理員可能須要添加到指定應用程序的新請求 URL 映射。」
引發錯誤的代碼是無法實例化一個SPSite。
通過各類嘗試測試,最終解決辦法以下:
1,在 IIS7中新建一個網站HostTest,端口任意,好比20001,路徑指向已經建立的asp.net web 應用程序項目的根目錄
而後把網站HostTest的.NET編譯中調試設置爲true
而後右鍵HostTest->編輯權限,添加everyone用戶
而後把HostTest的應用程序池設置爲任意一個SharePoint 2010網站的應用程序池
2,在VS2010裏面,右擊asp.net web app項目->屬性->分別在應用程序標籤和生成標籤下修改成.NET3.5框架+編譯時使用X64位
右擊asp.net web app項目->屬性->Web->在服務器區域,選擇「使用自定義Web服務器」,而後輸入
http://localhost:20001或http://主機名:20001
3,測試API的代碼必須使用SPSecurity.RunWithElevatedPrivileges(delegate()
{
});
包括起來。
這個問題是由於X64位系統引發的,同時SharePoint 2010的運行模式和普通的asp.net Web應用程序模式不一樣。