我有一个继承自SPItemEventReceiver的类,并实现了ItemAdded,ItemUpdated和ItemDeleted。这些都工作正常,我得到了我需要的数据。
但是,我想通过Web服务将一些数据推送到第三方服务器。在不对每个环境进行硬编码的情况下,为各种环境(开发/测试/生产)配置Web服务的外部依赖关系的最佳方法是什么?
如果可能,我宁愿避免使用任何静态* .ini类型的文件。我是否可以将配置部分添加到SharePoint的web.config并从事件处理程序中读取它?
答案 0 :(得分:1)
是的,存储该设置的最佳位置是web.config
文件。下面是一些相关文章:
答案 1 :(得分:1)
想想就是这样 - 如果您创建了另一个相同类型且具有相同事件接收器和所有内容的站点,会发生什么。你还会使用相同的配置吗?这是每个列表的设置吗?每个网站?每个服务器场?如果您认为它是服务器场设置,那么web.config对您有好处。如果您认为每个Web都需要不同的配置,那么您必须将配置保留在其他位置。例如,如果它在Web级别,您可以将配置字符串写入SPWeb.Properties
。稍后可以从该对象轻松读取此设置,例如SPContext.Current.Web.Properties["RemoteWebServiceURL"]
。您还可以将值设置为一个小的PowerShell脚本。 SPList
对象具有类似的属性包。