2015年9月4日 星期五

SharePoint 2103 Folder or File Limit Lenght (SharePoint文件庫中檔案或資料夾的長度限制)

在SharePoint 2013的文件庫或是清單中,有一些比較常見的限制,例如:Item : 30,000,000 per list…等等,但是說明中並沒有列出文件庫的資料夾或是檔案的長度限制,而這邊實際測試的結果,當資料夾(包含巢狀式結構)的長度大於260的話,就無法繼續新增下去!

SPFolder

檔案同樣也是,在巢狀式結構中,檔案名稱所對應的路徑假設大於260的話

SPFile

參考資料:

Software boundaries and limits for SharePoint 2013

2015年9月2日 星期三

Office使用RMS發生The operation being requested was not performed because the user has not been authenticated.

當使用Office文件,嘗試使用Word 然後想要去使用RMS執行限制存取,可以在檔案-->資訊-->保護文件—>限制存取—>連線至數位版權管理伺服器

image

但發生了以下的錯誤訊息:The operation being requested was not performed because the user has not been authenticated.

image

解決問題的方式為將此RMS的授權和驗證的WS路徑,加入到瀏覽器的Local Intranet Zone中即可!

image

2015年9月1日 星期二

SharePoint How to avoid restart Application pools when use Update-SPSolution (SharePoint 使用Update-SPSolution時避免啟動Application pools on IIS)

開發好的SP客製化專案(以WebPart為例來說),封裝完成為WSP,在SharePoint部署上去之後,假設需要更新的話,可以使用Update-SPSolution 指令來進行WebPart的更新,指令參考如下:

Update-SPSolution -Identity MyWP.wsp -LiteralPath D:\MyWP.wsp –GACDeployment

但是此時會遇到一個問題,假設我們一開始是把此WebPart部署到SharePoint-80這一個WebApplication,但是當執行Update-SPSolution時,系統並不會只是單純的SharePoint-80單一Web Application Restart,而是會預設將此Server上所有的Application Pool全部進行:停止—>啟用,如下圖所示:

image

原因是因為所有預設開發專案並且封裝WSP時,有一個封裝屬性:ResetWebServerModeOnUpgrade預設值是:StartStop,此時將會影響所有此Server上的Web Application連帶影響其他的應用程式!

那麼該如何來解決執行Update-SPSolution時避免去重新啟動所有的Application Pool呢? 執行步驟如下:

1. 開啟客製化的專案,開啟專案中的Package.Template.xml

image

2. 設定以下三個屬性值:ResetWebServer="FALSE" 、ResetWebServerModeOnUpgrade="Recycle" 、DeploymentServerType="WebFrontEnd",如下圖所示:

image

3. 此時重新打包封裝,並且針對更新後的WSP進行部署!

Update-SPSolution -Identity MyWP.wsp -LiteralPath D:\MyWP.wsp –GACDeployment

此時就可以IIS檢視,可以發現執行Update-SPSolution並不會將Application Pool停止了! Good!

image

 

參考資料:

https://msdn.microsoft.com/en-us/library/ms412929.aspx
http://blog.mastykarz.nl/optimizing-deploying-sharepoint-packages-minimize-impact-farm-availability/

2015年8月13日 星期四

SharePoint 2013 Custom Search MySite Note (在SharePoint中搜尋MySite注意事項)

這兩天在寫客製化Custom Search API,需求是去搜尋MySite的People資料,且Profile資料中有自訂的欄位,不過一直遇到一個問題就是:明明Profile欄位建立,也設定了Search的Metadata,但是結果就是搜尋不到!

因此去查詢Search的編目紀錄檔,發現有一個Warning,點進去一看

咦! MySite不在編目範圍中?? (註:開發環境是朋友建立的,因此一開始並不清楚預先的設定)

image

也就是說,MySite的SiteCollection下目前不在編目範圍中,因此回到MySite的網站設定—>搜尋—>搜尋與離線可用性

image

將"是否允許此網站顯示在搜尋結果中"改設定為:是!!

image

再回到Search重新Craw一次,上述的警示訊息就不見了,且搜尋的項目結果,也抓到了,雖然是一個小小的設定,但是因為是在MySite的網站中,所以大概稍微紀錄一下這次的Issue。

imageimage

2015年6月17日 星期三

Adding a Feature Event Receiver and Deploying Debugging SP Projects(SharePoint新增Feature事件接收器以及進行專案偵錯)

這一篇的內容主要是介紹在SharePoint的webpart專案中,在其Feature中加入事件接收器,並在這些事件中去撰寫程式去改變網站中的一些資訊,例如:title、logo之類的做法。

另外,也介紹的如何針對SharePoint客製化專案進行程式碼的偵錯,就讓咱們的一起來複習一下囉!!!