在Sharepoint中存储应用程序特定的配置数据?

时间:2012-10-25 13:01:59

标签: sharepoint web-config

我正在使用其他主Web应用程序的功能制作Sharepoint 2010 WebPart。 为了快速开发Webpart,我已经导入了主Web应用程序中使用的业务逻辑程序集。 Webpart工作并从Sharepoint web.config文件中提取特定于应用程序的配置信息。

这是存储此信息的最佳位置吗?

如果没有..

应用程序特定配置数据在何处/如何存储在Sharepoint中?

配置数据包含Web服务等位置等项目。数据只需要由系统管理员编辑。

由于

3 个答案:

答案 0 :(得分:5)

Web.Config是,恕我直言,存储这种配置信息的一个可怕的地方 - 它很难部署,很难改变,特别是如果你使用多个网络前端。

建议的方法是使用PropertyBag(键/值对)通过SPFarm的.Properties,SPWeb.RootWeb(用于网站集),SPWeb,SPList等(取决于您需要的范围)。 / p>

MSDN - Managing Custom Configuration Options for a SharePoint Application

作为

的一部分,可以使用生产就绪代码

MSDN - The SharePoint Guidance Library

请参阅Hierarchical configuration manager

这使您可以以编程方式访问这些值。如果您想在不使用指导库的情况下执行此操作,则可以使用类似以下代码的内容。

SPWeb web = SPContext.Current.Web;
if (web.Properties.ContainsKey("MyProperty"))
   string myProperty = web.Properties["MyProperty"];

如果您希望用户界面允许管理员轻松设置值,请使用SharePoint Property Bag Settings

之类的内容

答案 1 :(得分:1)

最简单的方法是创建仅对管理员可见的共享点列表。它可以有3列descriptiontitlevalue。它将存储所有配置值。您还可以将此列表的链接添加到网站设置页面。

答案 2 :(得分:0)

网络配置始终是个好地方。但是,如果要更改该数据,则必须强制执行某种类型的站点重新编译,这对最终用户来说是一种痛苦。

在codeplex上有一个很好的小应用程序/解决方案来处理属性包值

http://pbs.codeplex.com/

这是一个很棒的小应用程序/解决方案,与您的中央管理部门联系在一起。

我认为它应该是内置的。

希望这有帮助。