从Sharepoint Web部件访问web.config

3

我有一个VS 2008网络部件项目-在该项目中有一个web.config文件: 大致如下:

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

在我的 Web 部件中,我正在尝试访问 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.config(或任何其他类型的配置文件)?

谢谢,
Phil J


@philj:为了格式化代码,请在编辑器中选择它,然后按Control-K。否则,最好别看它,难看至极。 - John Saunders
1个回答

1

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

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


感谢提供信息。在我的情况下,它正在使用位于 C:\MOSS\Webs\Portal\web.config 的 web.config 文件,我想这应该没问题。找到了访问其他位于其他地方(本地或项目)的 web.config 文件的代码示例,但没有一个起作用。 - user360943

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接