2011-11-25 54 views
0

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

这只发生在生产环境中。

在测试中(只有一台服务器),我更新了web.config,并且所有更改都正常工作。

是因为我不应该更新网络配置。我注意到有一个SPWebConfigModification类。我必须使用这个吗?它不会像我手动完成相同的更改。

更新.... 我现在已经使用了SPWebConfigModification,也做了一个iisreset ...但这些更改被简单地忽略了!

更新2 ... ...在我的web.config更新

我又增加了下assemmblies sectuion集引用,somethign这样

更多的细节: 包括SharePoint还是这不起作用抛出无法找到程序集的异常。 此问题只发生在生产环境中。在开发和测试中,我也收到了异常,但是当我添加上面的程序集引用时,错误消失了。

另一件不起作用的是executionTimeout。我已经将此添加到生产环境中,但是Sharepoint仍然会给我们提供一个很长的请求。再一次,这个入口解决了测试和开发环境中的问题。

+0

你做**不**必须使用'SPWebConfigModifications'而你应该使用它。你说SharePoint不考虑你的改变。当您在web.config中进行更改时,请尝试执行iisreset(通常会自动完成)。你正在做什么改变?尝试做一些其他奇怪的变化,看看他们是否被考虑。在没有Load Balancer的情况下自行尝试每个服务器。两台服务器都有同样的问题吗? –

+0

是的,我做了一个iisreset,但没有任何效果。 –

+0

感谢您的回复。我在添加的web.config更改中添加了更多详细信息(请参阅更新2)。不幸的是,由于问题只发生在生产环境中,所以要提到的测试有点困难。 –

回答

1

我写了这本2007年的SharePoint,我想你需要修改模拟(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); 
    } 
} 
}); 
} 
+0

感谢您的回复......对于web.config。我创建了一个Windows应用程序来执行更改。该应用程序没有任何错误,它使用Farm管理员运行。 –

1

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

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

+0

感谢您的回复,不幸的是,它没有奏效。你认为它需要IIS重置吗?这是一个现场环境,所以做一个iis重置 –

+0

做了一个iis重置但仍然不起作用有点困难。 web.config的变化被忽略! –

+0

你可以发布你使用的代码吗? SPWebConfigModification是非常难以使用和工作的。它将需要一个iisreset。 –