我想知道在開發功能時是否有一種很好的方法來連接到SharePoint 2007網站的Application_Start?我知道我可以直接編輯站點根目錄下的Global.asax文件,但是有沒有辦法做到這一點,以便使用該功能部署?如何將SharePoint 2007功能綁定到網站的Application_Start中?
謝謝!
我想知道在開發功能時是否有一種很好的方法來連接到SharePoint 2007網站的Application_Start?我知道我可以直接編輯站點根目錄下的Global.asax文件,但是有沒有辦法做到這一點,以便使用該功能部署?如何將SharePoint 2007功能綁定到網站的Application_Start中?
謝謝!
其實,這是可能的,但它不涉及在Global.asax文件。
許多微軟的例子都通過Global.asax演示了接線代碼,但這涉及到SharePoint時不是最佳實踐方法。理想情況下,您的代碼應該打包爲功能並通過WSP進行部署(如您所知)。
關鍵在於將有問題的代碼實現爲HttpModule(即實現IHttpModule接口的類型)並將其連接到爲您的SharePoint應用程序提供服務的ASP.NET管道中。粗略地說,這些步驟是:
有關HttpModule開發的更多信息,請參閱http://msdn.microsoft.com/en-us/library/ms227673.aspx。有關SPWebConfigModification類型的一些其他詳細信息,請參閱http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebconfigmodification.aspx。
結果:可處理應用程序啓動並可通過功能部署的類。沒有手動文件黑客要求。
我已經在很多場景中成功地使用了它 - 最近有一個自定義緩存提供程序(IVaryByCustomHandler)需要在SPHttpApplication啓動時自行註冊回調。
雖然你的問題有點老,我希望這有助於!
我的直覺就是不可能。 Application_Start由運行時在asp.net引擎啓動時調用,所以很可能不會有任何方式在修改Global.asax之外掛鉤處理程序 - 例如,該鉤子必須是聲明性的並且是持久的,因爲它必須在應用程序停止/卸載時倖存下來。所以,如果您必須寫入global.asax,我想您可以編寫一個Feature EventReceiver來執行修改。
除此之外,你可以給出更多的細節,爲什麼?也許還有其他的攻擊角度。即時修改global.asax的想法讓我感覺不舒服。那不好。
[287]莪