我在SharePoint 2010中有一個託管的Web服務,可以上傳和下載到SharePoint。 因爲文件可能很大(100MB +),所以我更願意使用臨時文件作爲代碼通過的流而不是內存流,以避免每次下載/上載時分配100MB的內存。如何在SharePoint 2010託管代碼中存儲臨時文件?
問題是我可以在服務器中找到存儲臨時文件的位置。 System.IO.Path.GetTempFileName()會引發錯誤,因爲已通過身份驗證的用戶對服務器中的%TEMP%文件夾沒有權限。 「%systemroot%\ temp」允許寫入文件但不刪除它們。
任何想法,如果我可以從任何經過身份驗證的用戶可以訪問的sharepoint位置來存儲文件?
幾點注意事項:
的文件是暫時的,需要立即被刪除,以便無需考慮羣集問題。
我不想要一個解決方案,需要在服務器上執行任何主動操作,因爲此插件可能部署在擁有大量服務器的服務器上,而且我不想要求客戶通過每臺服務器。
謝謝。
基於我在自定義SharePoint 2007和SharePoint 2010 Web服務中使用HttpHandlers的經驗,我發現如果IIS站點設置爲允許匿名,則佈局下的文件對所有經過身份驗證的用戶甚至匿名用戶都是開放的。基本上,除了佈局下的ASPX頁面內的代碼之外,不應用SharePoint權限。 –