Sharepoint 2010 - web.config修改

时间:2011-11-25 13:08:50

标签: sharepoint sharepoint-2010

我们有一个拥有2台服务器的服务器场。 我已对两台服务器上的web.config应用了一些更改。 (我有一个特定的Web应用程序,即我已在我的sharepoint Web应用程序的web.config中应用了更改,而不是默认的Sharepoint站点或中央管理站点) 但似乎Sharepoint没有考虑到这些变化! 例如,我添加了一个程序集引用....但sharepoint仍然抛出一个程序集引用异常。我不得不将程序集引用添加到每个控件。 我还增加了执行超时但它仍然提供超时。

这仅在生产环境中发生。

在测试中(有一个服务器)我更新web.config并且所有更改都有效。

是不是因为我不应该更新网络配置。我注意到有一个SPWebConfigModification类。我必须使用它吗?它不会像我手工做的那样做同样的改变。

更新.... 我现在已经使用了SPWebConfigModification并且也做了一个iisreset ......但是改变被忽略了!

更新2 ...

有关我的web.config更新的更多详细信息

我在assemmblies sectuion下添加了一个程序集引用,有些像这样: 这不起作用,因为Sharepoint仍然抛出无法找到程序集的异常。 此问题仅发生在生产环境中。在开发和测试中,我也收到了异常但是当我添加上面的程序集引用时,错误消失了。

另一件不起作用的是executionTimeout。我已将此添加到生产环境中,但sharepoint仍然提供超时请求。同样,这个条目解决了测试和开发环境中的问题。

2 个答案:

答案 0 :(得分:1)

正如您所指出的,您需要使用SPWebConfigModification类进行这些更改。可以手动进行更改,但是,这通常会导致由复制问题等引起的随机问题....

SPWebConfigModification类将确保更改存储在SP数据库中并代表您修改web.config文件。

答案 1 :(得分:1)

我为Sharepoint 2007为此写了这个,我认为你需要修改模拟(RunWithElevatedPrivileges),但其余部分应该有效:

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{

  SPSecurity.RunWithElevatedPrivileges(delegate() {

  try
  {

     Trace.WriteLine("Try to modify web.config");
     SPWebApplication myWebApp = ((SPWeb)properties.Feature.Parent).Site.WebApplication;

     WebConfigModifier mod = new WebConfigModifier(myWebApp, OwnerString);

     mod.AddModification(
        "SafeControl[@Assembly='Elsni.WorldsBestProgram, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e7639c2c71f2f003']",
        "configuration/SharePoint/SafeControls",
        "<SafeControl Assembly='Elsni.WorldsBestProgram, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e7639c2c71f2f003' Namespace='GFA.UniversalListSyncSolution' TypeName='*' Safe='True' />"
     );

     mod.AddModification(
        "add[@key='PropertiesSiteUrl']",
        "configuration/appSettings",
        "<add key=\"PropertiesSiteUrl\" value=\"http://iei-developersy/sites/gfaadmin/\" />"
     );

     mod.Update();
     Trace.WriteLine("Done.");
  }
  catch (Exception ex)
  {
     Trace.WriteLine("ERROR while activating feature: " + ex.Message);
  }
}
});
}