2011-11-25 60 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。 –