我正在制作一个具有来自另一个主 Web 应用程序的功能的 Sharepoint 2010 WebPart。为了快速开发 Webpart,我导入了主 Web 应用程序中使用的业务逻辑程序集。Webpart 工作并从 Sharepoint web.config 文件中提取应用程序特定的配置信息。
这是存储这些信息的最佳位置吗?
如果不..
应用程序特定的配置数据应存储在哪里/如何存储在 Sharepoint 中?
配置数据包含 Web 服务的位置等项目。数据只需要由系统管理员编辑。
谢谢
我正在制作一个具有来自另一个主 Web 应用程序的功能的 Sharepoint 2010 WebPart。为了快速开发 Webpart,我导入了主 Web 应用程序中使用的业务逻辑程序集。Webpart 工作并从 Sharepoint web.config 文件中提取应用程序特定的配置信息。
这是存储这些信息的最佳位置吗?
如果不..
应用程序特定的配置数据应存储在哪里/如何存储在 Sharepoint 中?
配置数据包含 Web 服务的位置等项目。数据只需要由系统管理员编辑。
谢谢
恕我直言,Web.Config 是存储此类配置信息的糟糕场所——它难以部署且难以更改,尤其是在您使用多个 Web 前端时。
推荐的方法是通过 SPFarm、SPWeb.RootWeb(用于网站集)、SPWeb、SPList 等(取决于您需要的范围)的 .Properties 使用 PropertyBag(键/值对)。
MSDN - 管理 SharePoint 应用程序的自定义配置选项
有一个可用于生产的代码作为
请参阅分层配置管理器
这使您能够以编程方式读取/写入这些值。如果您想在不使用指导库的情况下执行此操作,那么您将使用类似于以下代码的内容。
SPWeb web = SPContext.Current.Web;
if (web.Properties.ContainsKey("MyProperty"))
string myProperty = web.Properties["MyProperty"];
如果您希望 UI 允许管理员轻松设置值,请使用SharePoint 属性包设置之类的东西
最简单的方法是创建仅对管理员可见的共享点列表。它可以有 3 列description
, title
, value
. 它将存储所有配置值。您还可以将此列表的链接添加到站点设置页面。
网络配置总是一个好地方。但是,如果您想更改该数据,则必须强制执行某种站点重新编译,这对最终用户来说是一种痛苦。
在 codeplex 上有一个不错的小应用程序/解决方案与属性包值有关
这是一个与您的中央管理相关的出色的小应用程序/解决方案。
我认为它应该是内置的。
希望这可以帮助。