InfoPath Forms Services 的最佳作法
建議您在管理 InfoPath Forms Services 環境時遵循這些最佳作法。
Windows SharePoint Services 文件庫中的文件上限為 2,000
如果表單範本填寫並送出總共超過 2,000 次,則應在表單範本中撰寫程式碼,使用 Web 服務送出至資料庫,或建立自訂送出功能,將表單置於多個程式庫中。這是因為 Windows SharePoint Services 3.0 文件庫有容量限制,如果文件庫中存在 2,000 份以上的文件,可能會導致效能下降。
如果您認為表單範本會送出超過 2,000 次,最好一開始就將表單設計成使用替代送出方法,而不是等到問題產生時才更正此問題,特別是在表單範本可供公開存取的網站使用時。
設定 InfoPath Forms Services 的工作階段狀態時使用表單檢視
您可以設定 InfoPath Forms Services 使用「工作階段狀態服務」(預設選項) 或「表單檢視」,以控制使用者工作階段的管理方式。當您設定 InfoPath Forms Services 使用「工作階段狀態服務」時,所有瀏覽器工作階段會在與共用服務提供者 (SSP) 對應的 SQL Server 資料庫上維護,並與表單範本所在的 Web 應用程式相關。此案例使用非常低的網路頻寬,但對執行 SQL Server 的電腦會有累積的效能影響。當您使用「表單檢視」時,工作階段會維護於用戶端瀏覽器上,且每次回傳伺服器會包括所有工作階段資料,最高可達 40 KB 的工作階段資料。此方式比使用工作階段狀態需要更大的頻寬,但不會影響執行 SQL Server 的電腦。一旦工作階段資料大小達到 40 KB,工作階段會自動轉換至工作階段狀態管理。
建議您在較小型的使用者群組環境中使用 [表單檢視],以降低對 SQL Server 的影響。如果您的 InfoPath Forms Services 部署有許多使用者,特別是許多高用量表單範本的工作階段資料小於 40 KB 時,工作階段狀態會是更好的選擇。使用 [表單檢視] 時,如果擔心會對網路效能有不良影響,可監視 40 KB 或 40 KB 以下的瀏覽器工作階段所使用之頻寬。
不建議在前端網頁伺服器上執行 SQL Server
如果在 Office SharePoint Server 前端網頁伺服器上執行 SQL Server (例如,在單一伺服器評估部署中),ASP.NET 快取會以比 SQL Server 還要低的臨界值釋出系統記憶體,而可能導致 InfoPath Forms Services 記憶體耗盡。
ASP.NET 使用的策略瞄準最大的網際網路資訊服務 (IIS) 記憶體使用量 (800 MB 或 60% 的可用實體 RAM,兩者取其較低者)。這些設定可在 IIS 管理員中進行設定。ASP.NET 還會針對整個系統,而不僅是針對 w3wp.exe 程序監視實體 RAM 使用量。當伺服器上的實體記憶體使用量達到 80% 時,ASP.NET 會開始定期丟棄快取中 5% 最舊的及優先順序最低的項目。若是實體記憶體使用量達到 85%,ASP.NET 會定期丟棄 50% 的快取。若是達到 90% 以上,ASP.NET 會積極修剪快取,並對剩餘有效的項目設定較低的項目上限,直到 ASP.NET 重新評估伺服器上的記憶體壓力並提高臨界值為止。
SQL Server 的記憶體使用量臨界值預設比 ASP.NET 快取高。在此情況下,SQL Server 永遠不會釋出記憶體,因為 ASP.NET 快取在達到 SQL Server 臨界值之前便已釋出記憶體。此情況會導致 InfoPath Forms Services 的輸送量降低,進而影響效能。
若要減輕此問題,當 SQL Server 安裝在與 Office SharePoint Server 相同的電腦上時,請手動設定 SQL Server 記憶體限制。如需調整 SQL Server 記憶體設定的詳細資訊,請參閱 Microsoft 網站上的文章 Server Memory Options (英文) (https://msdn.microsoft.com/zh-tw/library/aa196734.aspx) 。
可匿名存取表單的最佳作法
當您將表單部署至對匿名使用者公開的位置時 (例如公用 SharePoint 文件庫或網際網路上網頁中的內嵌表單),請確保表單的完整性。您應該採取一些其他步驟,以降低不當使用表單、拒絕服務 (DoS) 攻擊與潛在效能問題的風險。
請確保指令碼或其他自動程序無法存取表單範本。其中一個方式是強制送出表單範本的使用者輸入識別碼 (例如圖像中顯示的簡短英數字串),如此一來指令檔或自動程序便無法「讀取」。
包含機密資訊 (例如驗證資訊、伺服器或資料庫名稱或專利碼) 的表單範本一律不該對匿名使用者公開。
包含電子郵件送出資料連線的表單範本不應部署至可匿名存取的伺服器,因為送出表單時所產生的電子郵件會在主旨行中顯示「寄件者為匿名使用者」。
應謹慎評估與測試包含可呼叫伺服器處理程序之程式碼或功能的表單範本,以確保匿名使用者不會因存取表單範本而危害安全性。
若要避免使用者送出多份表單,請將可追蹤送出表單的每位使用者之 IP 位址的程式碼納入考量,以避免從相同 IP 位址重複送出。
啟用保護功能避免表單範本遭到變更,以保護表單範本的完整性。