Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint 2010-web.config修改_Sharepoint_Sharepoint 2010 - Fatal编程技术网

Sharepoint 2010-web.config修改

Sharepoint 2010-web.config修改,sharepoint,sharepoint-2010,Sharepoint,Sharepoint 2010,我们有一个农场,有两台服务器。 我已经在两台服务器上对web.config应用了一些更改。(我有一个特定的web应用程序,即我在sharepoint web应用程序的web.config中应用了更改,而不是默认的sharepoint网站或管理中心网站) 但Sharepoint似乎没有考虑到这些变化! 例如,我添加了一个程序集引用。。。。但sharepoint仍在引发程序集引用异常。我必须向每个控件添加程序集引用。 我还增加了执行超时,但它仍然会超时 这仅在生产环境中发生 在测试中(只有一台服务器

我们有一个农场,有两台服务器。 我已经在两台服务器上对web.config应用了一些更改。(我有一个特定的web应用程序,即我在sharepoint web应用程序的web.config中应用了更改,而不是默认的sharepoint网站或管理中心网站) 但Sharepoint似乎没有考虑到这些变化! 例如,我添加了一个程序集引用。。。。但sharepoint仍在引发程序集引用异常。我必须向每个控件添加程序集引用。 我还增加了执行超时,但它仍然会超时

这仅在生产环境中发生

在测试中(只有一台服务器),我更新了web.config,所有的更改都有效

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

更新。。。。 我现在已经使用了SPWebConfigModification,还做了一个iisreset。。。但是这些变化被完全忽略了

更新2

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

我在assemmblies Section下添加了一个程序集引用,如下所示: 这不起作用,因为Sharepoint仍引发找不到程序集的异常。 此问题仅发生在生产环境中。在dev和test中,我也收到了异常,但是当我添加上面的程序集引用时,错误消失了


另一件不起作用的事情是执行超时。我已将其添加到生产环境中,但sharepoint仍会发出一个很长的超时请求。同样,此条目解决了测试和开发环境中的问题。

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


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

我为Sharepoint 2007编写了这篇文章,我认为您需要修改模拟(以提升权限运行),但其余部分应该可以工作:

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);
  }
}
});
}
public override void功能已激活(SPFeatureReceiverProperties)
{
SPSecurity.runWithLevelatedPrivileges(委托(){
尝试
{
WriteLine(“尝试修改web.config”);
SPWebApplication myWebApp=((SPWeb)properties.Feature.Parent).Site.WebApplication;
WebConfigModifier mod=新的WebConfigModifier(myWebApp,OwnerString);
mod.AddModification(
“SafeControl[@Assembly='Elsni.WorldsBestProgram,Version=1.0.0,Culture=neutral,PublicKeyToken=e7639c2c71f2f003']”,
“配置/SharePoint/SafeControls”,
""
);
mod.AddModification(
“添加[@key='PropertiesItemUrl']”,
“配置/应用设置”,
""
);
mod.Update();
Trace.WriteLine(“完成”);
}
捕获(例外情况除外)
{
Trace.WriteLine(“激活功能时出错:+ex.Message”);
}
}
});
}

感谢您的回复,不幸的是,它不起作用。你认为需要重新设置IIS吗?这是一个活动环境,因此执行iis重置有点困难。执行了iis重置,但仍然不起作用。web.config更改被忽略!!你能把你用过的代码贴出来吗。众所周知,SPWebConfigModification很难使用和使用。它将重新请求iisreset。您不必使用
SPWebConfigModifications
,而应该使用它。你说SharePoint不考虑你的改变。在web.config中进行更改时,请尝试进行iisreset(这通常是自动完成的)。你到底在做什么改变?试着做一些其他奇怪的改变,看看他们是否被考虑。在没有负载平衡器的情况下单独尝试每台服务器。两台服务器都有相同的问题吗?是的,我做了一个iisreset,但没有任何效果。谢谢你的回复。我已经添加了关于我添加的web.config更改的更多详细信息(请参阅更新2)。不幸的是,您提到的测试有点困难,因为问题只发生在生产环境中。谢谢您的回复。。。对于web.config。我已经创建了一个windows应用程序来执行更改。应用程序运行时没有任何错误,并且使用服务器场管理员运行。