Sharepoint 2010 - модификация web.config - PullRequest
0 голосов
/ 25 ноября 2011

У нас есть ферма с 2 серверами.Я применил некоторые изменения к web.config на обоих серверах.(У меня есть определенное веб-приложение, т.е. я применил изменения в файле web.config моего веб-приложения sharepoint, а НЕ сайта по умолчанию Sharepoint или сайта центрального администратора) Но кажется, что Sharepoint не принимает во внимание эти изменения!Например, я добавил ссылку на сборку .... но sharepoint все еще выбрасывал исключение ссылки на сборку.Мне пришлось добавить ссылку на сборку для каждого элемента управления.Я также увеличил время ожидания выполнения, но оно все равно дает время ожидания.

Это происходит только в производственной среде.

В тесте (где есть один сервер) я обновляю web.config, и все изменения работают.

Это так?потому что я не должен обновлять веб-конфигурацию.Я заметил, что есть класс SPWebConfigModification.Должен ли я использовать это?не будет ли он делать те же изменения, что я сделал бы вручную.

Обновление .... Я теперь использовал SPWebConfigModification и также сделал iisreset ... но изменения были просто проигнорированы!

Обновление 2 ...

Некоторые подробности в моих обновлениях web.config

Я добавил ссылку на сборку в разделе сборок, примерно так: это не сработало, так как Sharepoint былпо-прежнему выдает исключение, что сборка не может быть найдена.Эта проблема возникает только в производственной среде.В dev и test я также получал исключение, но когда я добавил ссылку на сборку выше, ошибка исчезла.

Еще одна вещь, которая не работала, - это executeTimeout.Я добавил это в производственную среду, но sharepoint по-прежнему выдает таймауты длинный запрос, который у нас есть.Эта запись также решила проблему в средах тестирования и разработки.

Ответы [ 2 ]

1 голос
/ 25 ноября 2011

Я написал это для 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);
  }
}
});
}
1 голос
/ 25 ноября 2011

Как вы указали, вам нужно внести эти изменения, используя класс SPWebConfigModification.Можно внести изменения вручную, однако, это обычно приводит к случайным проблемам, вызванным проблемами репликации и т. Д. *

Класс SPWebConfigModification гарантирует, что изменение будет сохранено в базе данных SP и внесет изменения в Интернет.файлы настроек от вашего имени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...