当前位置:  开发笔记 > 后端 > 正文

如何将SharePoint 2007功能挂钩到站点的Application_Start中?

如何解决《如何将SharePoint2007功能挂钩到站点的Application_Start中?》经验,为你挑选了1个好方法。

我想知道在开发功能时是否有一种很好的方法可以挂钩到SharePoint 2007网站的Application_Start?我知道我可以直接编辑站点根目录中的Global.asax文件,但有没有办法实现这一点,以便它与该功能一起部署?

谢谢!



1> Sean McDonou..:

这实际上是可行的,但它不涉及Global.asax文件.

Microsoft的许多示例通过Global.asax演示了接线代码,但在SharePoint方面,这不是最佳实践方法.理想情况下,您的代码应作为功能打包并通过WSP进行部署(如您所知).

关键在于将有问题的代码实现为HttpModule(即实现IHttpModule接口的类型)并将其连接到为SharePoint应用程序提供服务的ASP.NET管道中.粗略地说,这些是以下步骤:

    创建一个实现IHttpModule接口的类.

    在HttpModule中实现Init方法; 在设置HttpApplication(在本例中为SPHttpApplication)时调用它,它为您提供了为其他管道事件执行处理,连接事件委托等的机会.

    创建一个SPFeatureReceiver,它将分别在激活和停用时从目标web.config文件添加和删除HttpModule.这是使用SPWebConfigModification类型执行的,以更新目标web.config文件中的节点.

    将所有功能打包为功能并通过WSP进行部署.

有关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注册自身以进行回调.

虽然你的问题有点老了,但我希望这会有所帮助!

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有