【问题标题】:Accessing web.config from Sharepoint web part从 Sharepoint Web 部件访问 web.config
【发布时间】:2011-03-03 19:02:50
【问题描述】:

我有一个 VS 2008 Web 部件项目 - 在这个项目中有一个 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 部件本地的 web.config(或任何其他类型的配置文件!)???

谢谢,

菲尔·杰

【问题讨论】:

  • @philj:要格式化代码,在编辑器中选择它并按 Control-K。否则,它看起来充其量是可怕的。

标签: c# sharepoint-2007 web-parts


【解决方案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 文件的代码示例(本地 ot 项目?),但没有一个工作。
猜你喜欢
  • 1970-01-01
  • 2011-02-08
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
相关资源
最近更新 更多