从Sharepoint Web部件访问web.config

时间:2010-06-15 01:50:23

标签: c# sharepoint-2007 web-parts

我有一个VS 2008 Web部件项目 - 在这个项目中是一个web.config文件: 像这样的东西:

<?xml version="1.0"?>
<configuration>
  <connectionStrings/>
  <system.web>
    <appSettings>
      <add key="MFOwner" value="Blah" />
    </appSettings>
…….

在我的网页部分中,我尝试访问appSetting部分中的值: 我已经尝试了下面的所有代码,每个代码都返回null:

 string Owner = ConfigurationManager.AppSettings.Get("MFOwner");
 string stuff1 = ConfigurationManager.AppSettings["MFOwner"];
 string stuff3 = WebConfigurationManager.AppSettings["MFOwner"];
 string stuff4 = WebConfigurationManager.AppSettings.Get("MFOwner");
 string stuff2 = ConfigurationManager.AppSettings["MFowner".ToString()];

我尝试过这个代码:

NameValueCollection sAll;
sAll = ConfigurationManager.AppSettings;
string a;
string b;
foreach (string s in sAll.AllKeys)
   {
     a = s;
     b = sAll.Get(s);
    }

并在调试模式中逐步完成 - 这就是:

FeedCacheTimer
FeedPageURL
FeedXsl1
ReportViewerMessages

这不是来自我的web.config文件中的任何内容....也许是sharepoint本身的配置文件?如何访问我的Web部件本地的web.config(或任何其他类型的配置文件!)

感谢,

Phil J

1 个答案:

答案 0 :(得分:1)

这些值看起来像默认的SharePoint web.config属性。创建SharePoint Web部件时,它将部署到承载SharePoint站点的IIS虚拟目录,该站点具有自己的(非常大的)web.config文件,而不是您的应用程序web.config文件。

根据您的生产环境,您可以使用所需的值更新SharePoint web.config文件,并且代码应该正常工作。如果您无法更新web.config文件,您可以查看在部署到的IIS目录中使用独立配置文件(自定义代码然后读取它),或者可能使用与每个SP网站集相关联的属性包。需要通过代码添加您的值。